2016-05-13 5 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

[email protected], должно быть [email protected],

+0

Да, я исправил это в своем коде, но все равно дает ту же ошибку, я думал, что @ 4 говорит, что это должно быть @ 8, поэтому я изменил Truck_Vin = @ 4 до 8, чтобы проверить, но забыл вернуть его до 4 до размещение здесь. Хотя это все равно такая же ошибка ... –

+0

ok простая математика: от @ 0 до 19 есть 20 переменных Вправо? Но получают 19 значений из 'Request.Form []' и, я думаю, вы должны передать еще одно значение в методе db.Execute(). – mihkov

+0

yes В этом блоке есть 19 переменных Request.Form [""], но есть 1 в самом верху, который является переменной var ID = Request ["id"], которая, поскольку это запрос обновления, вытягивает этот элемент из Сам URL-адрес truck_edit.cshtml? Id = 2. Что такое @ 19 в списке, и в самом конце db.Execute (updateQueryString ,,,,,,,,,,,,,,,, ID) ... –