簡體   English   中英

SqlDataAdapter.Update(DataTable)提供InvalidOperationException

[英]SqlDataAdapter.Update(DataTable) gives 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());
        }
    }

但是,我在運行代碼時收到此錯誤。

在此處輸入圖片說明

用戶表單中的第96行

da.Update(dt);

我已經檢查過我的SelectCommand是否在ID中返回主鍵,所以這不應該是問題。

當然,在問了問題幾秒鍾后,我就找到了答案。

我用來實際填充DataTable的SelectCommand看起來像這樣

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

這意味着我的DataTable中的列的名稱與我嘗試使用:-) Brainfart更新數據庫的名稱不同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM