MySqlCommand - 参数插入无法正常工作

时间:2015-10-07 07:40:06

标签: c#

我将数据从数据网格插入到MySQL表中,插入工作正常,数据被插入但最后它给出错误,说" sid"尽管数据已插入表中,但不能为null。请检查我的代码。

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

2 个答案:

答案 0 :(得分:1)

在C#中,datagridview最后一行始终为空

如果您显示数据,每次都会有一个空行,您可以轻松查看,这就是您收到此错误的原因。

要删除此空行,您可以使用:

WPF的EDIT代码

添加

<DataGrid CanUserAddRows="False" IsReadOnly ="true"/>

<DataGridTextColumn CanUserAddRows="False" IsReadOnly ="true"/>

在XAML中

答案 1 :(得分:-1)

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