2016-05-19 14 views
1

sqliteにラジオボタンを挿入するにはどうすればよいですか?私は1つのラジオボタングループと2つのラジオボタンを持っています。sqliteデータベースのXamarin android insertラジオボタン

現在のコードエラーは、 "myTableにはMale(コード)という名前の列がありません"です。

/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)); 
    } 
      }; 

答えて

0

あなたのコードは正常に見えるが、あなたがは最近、データベースの構造を変更し、いくつかの列を追加したようです。

データベースが存在するかどうかをチェックすると、構造が比較されません。だから私はあなたのアプリまたは(データクリア)クリーンインストールを完全にアンインストールする必要があると思うし、エラーがなくなるはずです。

問題が解決しない場合は、extract your databaseを入力し、softwareを使用してテーブルを表示します。

+0

ありがとうございます。アプリを再インストールしてから問題が解決しました。 – terry

関連する問題