2016-05-19 8 views
1

Wie füge ich radiobutton in sqlite? Ich habe 1 Radiobutton-Gruppe und 2 Radiobutton.Xamarin Android RadioButton in sqlite-Datenbank einfügen

Aktueller Codefehler ist "myTable hat keine Spalte namens Male (code)".

/Database class 
public void CreateDatabase(string sqldb_name) 
{ 
    try 
    { 
     sqldb_message = ""; 
     string sqldb_location = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal); 
     string sqldb_path = Path.Combine(sqldb_location, sqldb_name); 
     bool sqldb_exists = File.Exists(sqldb_path); 
     if (!sqldb_exists) 
     { 
      sqldb = SQLiteDatabase.OpenOrCreateDatabase(sqldb_path, null); 
      sqldb_query = "CREATE TABLE IF NOT EXISTS MyTable (id_key INTEGER PRIMARY KEY AUTOINCREMENT,PhoneNumber VARCHAR, Name VARCHAR, Password VARCHAR, DateOfBirth VARCHAR, Male VARCHAR, Female VARCHAR);"; 
      sqldb.ExecSQL(sqldb_query); 
      sqldb_message = "Database: " + sqldb_name + " created"; 
     } 
     else 
     { 
      sqldb = SQLiteDatabase.OpenDatabase(sqldb_path, null, DatabaseOpenFlags.OpenReadwrite); 
      sqldb_message = "Database: " + sqldb_name + " opened"; 
     } 
     sqldb_available = true; 

    } 
    catch (SQLiteException ex) 
    { 
     sqldb_message = ex.Message; 
    } 
} 

public void AddRecord(string PhoneNumber, string Pwd, string Name, string DOB, string Male, string Female) 
{ 
    try 
    { 
     sqldb_query = "INSERT INTO MyTable (PhoneNumber, Password, Name, DateOfBirth, Male, Female) VALUES (" + "'" + PhoneNumber + "','" + Pwd + "','" + Name + "','" + DOB + "','" + Male + "','" + Female + "');"; 
     sqldb.ExecSQL(sqldb_query); 
     sqldb_message = "Record saved"; 
    } 

    catch (SQLiteException ex) 
    { 
     sqldb_message = ex.Message; 
    } 
} 

//////////////////////////////////////////////////////////////////////////// 

//Mainactivity 

protected override void OnCreate(Bundle bundle) 
{ 
    base.OnCreate(bundle); 
    SetContentView(Resource.Layout.RegisterLay); 


    sqldb = new database("person_db"); 

    btnRegister = FindViewById<Button>(Resource.Id.btnRegister); 

    //Gets EditText object instances 
    Male = FindViewById<RadioButton>(Resource.Id.rdbMale); 
    Female = FindViewById<RadioButton>(Resource.Id.rdbFemale); 

    //Creates ImageButton click event for imgAdd, imgEdit, imgDelete and imgSearch 
    btnRegister.Click += async delegate 
    { 
     sqldb.AddRecord(PhoneNumber.Text, MD5(Password.Text), Name.Text, DateOfBirth.Text, Male.Text, Female.Text); 


     PhoneNumber.Text = Password.Text = Name.Text = DateOfBirth.Text = Male.Text = Female.Text = ""; 

     await Task.Delay(2000); 
     StartActivity(typeof(MainActivity)); 
    } 
      }; 

Antwort

0

Ihr Code sieht gut aus, aber es scheint, dass Ihr haben Ihre Datenbankstruktur geändert in letzter Zeit und einige Spalten hinzugefügt.

Wenn Sie überprüfen, ob die Datenbank vorhanden ist, vergleicht sie keine Strukturen. Also ich denke, Sie müssen vollständig deinstallieren Ihre App oder (Daten löschen) und dann tun Sie eine sauber installieren, und dann sollte der Fehler weg sein.

Wenn das Problem nicht gelöst ist, können Sie extract your database verwenden und software verwenden, um seine Tabellen anzuzeigen.

+0

Thanks.I installieren Sie die App, dann Problem gelöst! – terry