Xamarin android 在 sqlite 数据库中插入单选按钮

Xamarin android insert radiobutton in sqlite database

如何将单选按钮插入到 sqlite 中?我有 1 个单选按钮组和 2 个单选按钮。

当前代码错误是"myTable has no column named 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));
    }
            };

您的代码看起来不错,但您最近似乎更改了数据库结构并添加了一些列。

当您检查数据库是否存在时,它不会比较结构。所以我认为您需要完全卸载您的应用程序或(清除数据)然后全新安装,然后错误应该消失了。

如果问题没有解决,您可以extract your database and use a software查看其表格。