SqlDataAdapter.Update(DataTable)给出InvalidOperationException

时间:2014-02-24 14:15:20

标签: c# invalidoperationexception sqldataadapter

我有这段代码应该非常直接。

private void btnSave_Click(object sender, EventArgs e)
    {
        try
        {
            using (SqlConnection sqlConn = new SqlConnection(connString))
            {
                sqlConn.Open();

                using (SqlDataAdapter da = new SqlDataAdapter())
                {
                    da.SelectCommand = new SqlCommand("SELECT Id, FirstName, LastName, TcReadOnly FROM PersonTable", sqlConn);

                    using (SqlCommandBuilder builder = new SqlCommandBuilder(da))
                    {                           
                        DataTable dt = (DataTable)dgvUsers.DataSource;

                        da.UpdateCommand = builder.GetUpdateCommand();
                        da.Update(dt);
                    }
                }
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show("Der er sket en fejl \r\n \r\n" + ex.ToString());
        }
    }

但是,我在运行代码时收到此错误。

enter image description here

Userform中的第96行

da.Update(dt);

我已经检查过我的SelectCommand在Id中返回一个主要内容,所以这不应该是问题。

1 个答案:

答案 0 :(得分:1)

当然,在提出问题后几秒钟我找到了答案。

我用来实际填充DataTable的SelectCommand看起来像这样

da.SelectCommand = new SqlCommand("SELECT Id, FirstName AS Fornavn, LastName AS Efternavn, " +
                        "TcReadOnly AS 'Read only' FROM PersonTable", sqlConn);

这意味着我的DataTable中的列与我尝试用以下内容更新数据库的列名不同:-) Brainfart ....