MySqlCommand -参数插入不正常
本文关键字:不正常 插入 参数 MySqlCommand | 更新日期: 2023-09-27 18:16:35
我正在从数据网格插入数据到MySQL表,插入工作正常,数据被插入,但最后它给出了错误,说"sid"不能为空,尽管数据插入到表中。请检查我的代码。
MySqlConnection cn = new MySqlConnection(@"connectionstring");
string query = "insert into excel_table (sid,name,fathername)values(@sid,@name,@fathername)";
MySqlCommand cmd = new MySqlCommand(query, cn);
cn.Open();
foreach(DataRowView dr in gridxl.ItemsSource)
{
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@sid", dr["sid"]);
cmd.Parameters.AddWithValue("@name", dr["name"]);
cmd.Parameters.AddWithValue("@fathername", dr["fathername"]);
cmd.ExecuteNonQuery();
}
cn.Close();
MessageBox.Show("saved!");
在c#中,datagridview的最后一行总是为空
如果你显示你的数据,每次都会有一个空行,你可以很容易地检查它,这就是为什么你得到这个错误。
要删除此空行,可以使用:
编辑WPF代码:只需添加
<DataGrid CanUserAddRows="False" IsReadOnly ="true"/>
或
<DataGridTextColumn CanUserAddRows="False" IsReadOnly ="true"/>
在XAML 也许在ItemSource的末尾有一个空行?
试题:
foreach(DataRowView dr in gridxl.ItemsSource)
{
if (dr["sid"] != null)
{
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@sid", dr["sid"]);
cmd.Parameters.AddWithValue("@name", dr["name"]);
cmd.Parameters.AddWithValue("@fathername", dr["fathername"]);
cmd.ExecuteNonQuery();
}
}