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!");

MySqlCommand -参数插入不正常

在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();
        }
    }