2014-02-24 70 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 ....

相關問題