我想通过使用WPF和C#的两个文本框向mysql数据库插入两个值。我正在成功连接到数据库,但是当我尝试插入数据时出现错误:列“user_name”不能为空。真正令人困惑的是,我在第一个和第二个文本框中输入数据。看来插入到文本框中的数据没有通过。我的问题是你知道问题在哪里以及如何解决?用户名不能包含空值
PS:我的数据库是非常简单的包含ID为INT16自动递增,名称为varchar100和USER_PASSWORD作为varchar100
这里是我的代码:
private void button1_Click(object sender, EventArgs e)
{
MySqlConnection con = new MySqlConnection("host=tara.rdb.superhosting.bg;user=sozopouk;password=27051996;database=sozopouk_test2;");
MySqlDataAdapter da = new MySqlDataAdapter();
da.InsertCommand = new MySqlCommand("Insert into niki2 values (@id,@name, @user_password)", con);
da.InsertCommand.Parameters.Add("@name", MySqlDbType.VarChar).Value = textBox1.Text;
da.InsertCommand.Parameters.Add("@user_password", MySqlDbType.VarChar).Value=textBox2.Text;
con.Open();
da.InsertCommand.ExecuteNonQuery();
con.Close();
}
家伙,我没经过一些修改,我在 '字段列表'
未知列 '名':收到此错误信息下面是编辑的代码:
private void button1_Click(object sender, EventArgs e)
{
MySqlConnection con = new MySqlConnection("host=tara.rdb.superhosting.bg;user=sozopouk;password=27051996;database=sozopouk_test2;");
MySqlDataAdapter da = new MySqlDataAdapter();
da.InsertCommand = new MySqlCommand("INSERT INTO niki (name, user_password) VALUES (@name, @user_password)", con);
da.InsertCommand.Parameters.Add("@name", MySqlDbType.VarChar).Value = textBox1.Text;
da.InsertCommand.Parameters.Add("@user_password", MySqlDbType.VarChar).Value=textBox2.Text;
con.Open();
da.InsertCommand.ExecuteNonQuery();
con.Close();
}
当我与USER_NAME更换名称,并尝试将数据插入我得到一个错误**列“USER_NAME”不能为空**
受影响的线路是:
da.InsertCommand.ExecuteNonQuery();
你有什么想法如何解决它?
我知道你并没有特别询问这个问题,但我建议养成在INSERT语句中总是包含显式列名的习惯。在我最早的一些数据库代码中,它总共是p.i.t.a.当数据库模式更改为添加列时,必须返回并修复它们。 – sblom
是否检查@user_name是否作为数据库中的notnull字段提供? –