2012-08-05 77 views
1
Line 22: var sql3 = "UPDATE productori SET [email protected], [email protected], [email protected] WHERE [email protected]"; 
Line 23: var db2 = Database.Open("SmallBakery");<br> 
Line 24:  **db2.Execute(sql3 ,Name3, detail2, harga2);** 

顯示錯誤位置的粗體區域。在剃鬚刀webmarix中更新

我在更新我的數據庫時遇到問題。我是新的webmatrix和剃鬚刀。

`Exception Details: System.Data.SqlServerCe.SqlCeException: The column name is not valid. [ Node name (if any) = ,Column name = Name3 ]` 

這是我的錯誤。 下面是我的數據庫格式:

`ID = identity=big int 
Name nvarchar 
Description nvarchar 
price nvarchar` 

幫助我理解我做錯了什麼吧。

回答

0

數據庫中沒有名爲Name3的列,但是您的SQL試圖引用具有該名稱的列。更改SQL以使列名與您在數據庫中的名稱相匹配。另外,您的SQL中有4個參數標記,但您只爲其中的3個提供值,以便SQL永遠不會更新任何記錄。

你的SQL應該是這樣的:

"UPDATE productori SET [email protected], [email protected], [email protected] WHERE [email protected]"; 

然後你需要傳遞的ID值:

db2.Execute(sql3, Name3, detail2, harga2, variable_containing_id_value); 
+0

VAR sqlup =(「UPDATE productori集名稱= @ 0,說明= @ 1,Price = @ 2 WHERE ID = @ 3「); var db2 = Database.Open(「SmallBakery」); db2.Execute(sqlup,Name3,Description3,Price3,id); 但是當我運行代碼時,數據庫內的值沒有變化 – mhfiz 2012-08-07 01:41:29

+0

然後,您需要檢查id的值以確保它與數據庫中的值匹配。 – 2012-08-07 04:46:52

+0

ID傳遞,因爲我可以編輯文本框中的值,但ispost期間,它沒有像SQL在這裏執行的代碼示例 https://docs.google.com/document/d/1RPen-j17VX3NH7ZO4XjZwRACDG5IDvZviixNbhs_oP8/edit – mhfiz 2012-08-08 03:59:28