我正在用C#編寫一個程序,通過ODBC自動將數據插入到Navision數據庫中。我通過調用OdbcDataAdapter.Fill()方法填充DataTable對象。更改一些值後,我想使用OdbcDataAdapter.Update()更新原始數據庫。然而,這總是導致:C# - OdbcDataAdapter.Update()導致語法錯誤
錯誤[42000] [Simba] [SimbaEngine ODBC Driver] UPDATE Item SET Location =? ((No. < < ??? >> =?)AND((?= 1 AND位置爲NULL)或(位置=?))) 錯誤[42000] [Simba] [SimbaEngine ODBC Driver] Syntax Error。
這是代碼:
static void Main(string[] args)
{
DataTable Item = new DataTable();
OdbcConnection connection = new OdbcConnection("DSN=Navision Frank-Backup");
connection.Open();
OdbcDataAdapter adapter = new OdbcDataAdapter();
adapter.SelectCommand = new OdbcCommand("select \"No.\", \"Location\" from Item where \"No.\" = 'AA0182'", connection);
OdbcCommandBuilder builder = new OdbcCommandBuilder(adapter);
adapter.Fill(Item);
Item.Rows[0].BeginEdit();
Item.Rows[0]["Location"] = "SW";
Item.Rows[0].EndEdit();
adapter.UpdateCommand = builder.GetUpdateCommand();
adapter.Update(Item);
}
我希望有人能幫助我這一點。
編輯:我剛剛發現,如果我手動設置更新命令,使用
adapter.UpdateCommand = new OdbcCommand("update Item set Location = 'SW' where \"No.\" = 'AA0182'");
它完美的罰款。但是我不能使用這種方法,因爲我需要更改多個記錄。
無法找到指定的查詢'UPDATE項設置...'在提供的代碼!你確定你已經添加了正確的代碼與問題? –
是的,這正是我剛剛使用的代碼。 – tubu
你在表格上創建了觸發器嗎?你確定這個錯誤只是因爲這個代碼嗎? –