1. 程式人生 > >c#“對於不返回任何基表資訊的 SelectCommand 不支援動態 SQL 生成”錯誤的解決

c#“對於不返回任何基表資訊的 SelectCommand 不支援動態 SQL 生成”錯誤的解決

 昨天在做C#一個小程式的時候也遇到了“對於不返回任何基表資訊的 SelectCommand 不支援動態 SQL 生成”的錯誤提示。經過GOOGLE上的搜尋,絕大多數的帖子都指出是由於表沒有定義主鍵引起的,但是我的表的確是有主鍵定義了的,在程式碼中關聯了主鍵也不行。最後終於解決。紅色部分為新增部分(thisBuilder 宣告:SqlCommandBuilder thisBuilder;)使用SqlCommand的也應該可以。

try
   {
                String device_next_id  = this.getnextid();
                DataTable dt = new DataTable();
                dt = mydataset.Tables["device"];
                DataRow newRow = dt.NewRow();
                newRow["裝置編碼"] = device_next_id.ToString();
                newRow["裝置名稱"] = this.textBox1.Text.ToString().Trim();
                newRow["裝置型別"] = this.cmbType.Text.ToString().Trim();
       dt.Rows.Add(newRow);
                             
                thisBuilder.RefreshSchema();
                thisAdapter.UpdateCommand = thisBuilder.GetUpdateCommand();
                thisAdapter.InsertCommand = thisBuilder.GetInsertCommand();
                thisAdapter.DeleteCommand = thisBuilder.GetDeleteCommand();

                thisAdapter.Update(mydataset, "device");
             dt.AcceptChanges();
    MessageBox.Show("裝置資訊已經被成功的儲存到資料庫","恭喜");    
   }
   catch(Exception e1)
   {
    MessageBox.Show(e1.Message);
    return;
   }