在c#上执行查询错误
本文关键字:查询 错误 执行 | 更新日期: 2023-09-27 17:50:17
我有问题。我想用这个c#
在我的mysql数据库中存储数据private void btnSaveFilm_Click(object sender, EventArgs e)
{
try
{
MySqlConnection conn = new MySqlConnection(connection.mysqlconnectionbuilder());
conn.Open();
MySqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "INSERT INTO film(judul,genre,asal,kondisi)"
+ "VALUES(@judul,@genre,@asal,@kondisi)";
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@judul", textBoxJudul.Text);
cmd.Parameters.AddWithValue("@genre", category(comboBoxGenre.SelectedValue.ToString()).ToString());
cmd.Parameters.AddWithValue("@asal", asal(comboBoxAsal.SelectedValue.ToString()).ToString());
cmd.Parameters.AddWithValue("@kondisi", checkedStatus());
cmd.ExecuteNonQuery();
conn.Close();
}
catch(Exception exe)
{
Console.Write("Error on Save Film : " + exe.ToString() + "'n" +exe.Message);
}
}
但是显示错误系统。NullReferenceException:对象引用没有设置为对象的实例。
第40行错误:
cmd.Parameters.AddWithValue("@genre",kategori(comboBoxGenre.SelectedValue.ToString()).ToString());
如何解决?
将你的代码折射成这样,使用using
语句,
string connString = connectionmysqlconnectionbuilder();
using (MySqlConnection conn = new MySqlConnection(connString)
{
using (MySqlCommand cmd = new MySqlCommand())
{
cmd.Connection = conn;
cmd.CommandText = @"INSERT INTO film(judul,genre,asal,kondisi)
VALUES(@judul,@genre,@asal,@kondisi)";
cmd.Parameters.AddWithValue("@judul", textBoxJudul.Text);
cmd.Parameters.AddWithValue("@genre", kategori(comboBoxGenre.Text).ToString());
cmd.Parameters.AddWithValue("@asal", asal(comboBoxAsal.Text).ToString());
cmd.Parameters.AddWithValue("@kondisi", checkedStatus());
try
{
comm.Open();
cmd.ExecuteNonQuery();
}
catch(MySqlException ex)
(
Console.WriteLine(ex.ToString());
)
}
}
也可以用
comboBoxGenre.Text instead of comboBoxGenre.SelectedValue
有两个原因:
1. comboboxgene . selectedvalue将为null
2.kategori()将返回null
你可以用Convert.ToString()
代替variable.toString()
来处理null错误
所以用这个代替其他行
cmd.Parameters.AddWithValue("@genre", Convert.ToString(kategori(Convert.ToString(comboBoxGenre.SelectedValue))));