2014-02-24 101 views
0

我有这段代码应该是非常简单的。SqlDataAdapter.Update(DataTable)给出了InvalidOperationException异常

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

96号线在用户窗体是

da.Update(dt); 

我已经检查了我的SelectCommand在标识返回主,所以这不应该成为问题。

回答

1

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

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

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

这意味着,在我的数据表中的列不具有相同的名称的那些我试图更新数据库与:-) Brainfart ....

相关问题