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;
}