2016-05-13 56 views
1

我遇到了问题,试图更新我的SQL数据库应该工作的代码,我没有看到什么是错的,或者如何解决它。也许一组新的眼睛可能能够指出什么是错的。误差=webmatrix 3 C#SQL错误参数化查询

“的参数化查询 '(@ 0 nvarchar的(3),@ 1个为nvarchar(12),@ 2为nvarchar(8),@ 3为nvarchar(4),@ 4' 预计参数“@ 8' ,但未提供该”

代码如下:

Truck_Number = Request.Form["Truck_Number"]; 
Truck_Make = Request.Form["Truck_Make"];   
Truck_Model = Request.Form["Truck_Model"]; 
Truck_Year = Request.Form["Truck_Year"]; 
Truck_Vin = Request.Form["Truck_Vin"]; 
Truck_Empty_Weight = Request.Form["Truck_Empty_Weight"]; 
Truck_Assigned_To = Request.Form["Truck_Assigned_To"]; 
Truck_Assigned_Date = Request.Form["Truck_Assigned_Date"]; 
Truck_Plate_Number = Request.Form["Truck_Plate_Number"]; 
Truck_IFTA_ID = Request.Form["Truck_IFTA_ID"]; 
Truck_HUT_ID = Request.Form["Truck_HUT_ID"]; 
Truck_Oregon_ID = Request.Form["Truck_Oregon_ID"]; 
Truck_New_Mexico_ID = Request.Form["Truck_New_Mexico_ID"]; 
Truck_Kentucky_ID = Request.Form["Truck_Kentucky_ID"]; 
Truck_Payment_Start_Date = Request.Form["Truck_Payment_Start_Date"]; 
Truck_Payment_Due_Date = Request.Form["Truck_Payment_Due_Date"]; 
Truck_Payment_Amount = Request.Form["Truck_Payment_Amount"]; 
Truck_Total_Payment = Request.Form["Truck_Total_Payment"]; 
Truck_Commission = Request.Form["Truck_Commission"]; 

var updateQueryString [email protected]"UPDATE Trucks SET [email protected], 
[email protected], 
[email protected], 
[email protected], 
[email protected], 
[email protected], 
[email protected], 
[email protected], 
[email protected], 
[email protected], 
[email protected], 
[email protected], 
[email protected], 
[email protected], 
[email protected], 
[email protected], 
[email protected], 
[email protected], 
[email protected] WHERE [email protected]"; 
db.Execute(updateQueryString,Truck_Number,Truck_Make,Truck_Model,Truck_Year,Truck_Vin,Truck_Empty_Weight,Truck_Assigned_To,Truck_Assigned_Date,Truck_Plate_Number,Truck_IFTA_ID,Truck_HUT_ID,Truck_Oregon_ID,Truck_New_Mexico_ID,Truck_Kentucky_ID,Truck_Payment_Start_Date,Truck_Payment_Due_Date,Truck_Payment_Amount,Truck_Total_Payment,Truck_Commission,ID); 
Response.Redirect("truck_list.cshtml"); 

任何帮助弄清楚什么是错了,我将不胜感激

+0

的参数化查询 '(@ 0 nvarchar的(3),@ 1个为nvarchar(12),@ 2为nvarchar(8),@ 3为nvarchar(4),@ 4' 预期参数'@ 8',没有提供。 –

+0

检查你是否确实有一个名为“Truck_Vin”的表单字段 –

回答

1

你@ 8列出两次,而你错过了@ 4。

+0

是的,我忘了把它放回去,起初我以为它是在4点应该是8的意思,所以我改变了4到8,但忘了放回去,但仍然得到同样的错误。 –

0
+0

是的,我在我的代码中解决了这个问题,但仍然给出了同样的错误,我认为@ 4是说应该是@ 8,所以我改变了Truck_Vin = @ 4到8,只是为了检查,但忘记把它放回到4之前张贴在这里。虽然它仍然是相同的错误... –

+0

好简单的数学:从@ 0到@ 19有20个变量吗?但是从Request.Form []'获得19个值,我想你应该在db.Execute()方法中传递一个值。 – mihkov

+0

是在该块中有19个Request.Form [“”]变量,但最顶端是1,它是var ID = Request [“id”]变量,因为这是一个更新查询,它将该变量从URL本身truck_edit.cshtml?id = 2场景。这是列表中@ 19,并在最后的db.Execute(updateQueryString ,,,,,,,,,,,,,,,, ID)设置... –