Tôi đang cập nhật một danh sách dài các bản ghi. Trong mã của tôi, mọi thứ đều chạy như được dự đoán cho đến khi nó thực hiện truy vấn. Tôi nhận được mộtCú pháp không chính xác gần lỗi quy trình được lưu trữ
cú pháp sai gần
(tên thủ tục lưu trữ của tôi) 'TempUpdatePhysicalCityStateZip'. Tôi đã thử nghiệm nó với SQL Server Management Studio và nó chạy tốt. Vì vậy, tôi không hoàn toàn chắc chắn nơi tôi đã nhận nó sai. Dưới đây là thủ tục được lưu trữ và mã của tôi:
ALTER PROCEDURE [dbo].[TempUpdateCityStateZip]
@StoreNo nvarchar (11),
@City nvarchar(50),
@State nvarchar(2),
@Zip nvarchar(5)
AS
BEGIN
SET NOCOUNT ON;
UPDATE StoreContact
SET City = @City, State = @State, Zip = @Zip
WHERE StoreNo = @StoreNo
END
Dưới đây là mã của tôi:
Dictionary<string, string> CityStateZipList = getCityStateZipList(dbPath);
using (SqlConnection conn = new SqlConnection(dbPath))
{
conn.Open();
SqlCommand cmdUpdate = new SqlCommand("TempUpdateCityStateZip", conn);
foreach (KeyValuePair<string, string> frKeyValue in CityStateZipList)
{
cmdUpdate.Parameters.Clear();
string[] strCityStateZip = frKeyValue.Value.Split(' ');
cmdUpdate.Parameters.AddWithValue("StoreNo", frKeyValue.Key.ToString());
foreach (String i in strCityStateZip)
{
double zipCode;
if (i.Length == 2)
{
cmdUpdate.Parameters.AddWithValue("State", i);
}
else if (i.Length == 5 && double.TryParse(i, out zipCode))
{
cmdUpdate.Parameters.AddWithValue("Zip", i);
}
else
{
cmdUpdate.Parameters.AddWithValue("City", i);
}
}
cmdUpdate.ExecuteNonQuery();
}
}
Tôi nghĩ bạn đúng và các tên thông số đó cần phải được sửa. Tuy nhiên, tôi nghĩ rằng thông báo lỗi "sai cú pháp" không chính xác được gây ra bởi CommandType thiếu. – DOK