我正在更新一长串记录。在我的代码中,一切都按预测运行,直到执行查询。我得到一个
Incorrect syntax near 'TempUpdatePhysicalCityStateZip'
(我的存储过程名称)。我已经使用 SQL Server Management Studio 对其进行了测试,并且运行良好。所以,我不太确定我哪里错了。下面是我的存储过程和代码:
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
这是我的代码:
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();
}
}
最佳答案
我相信如果您不指定命令类型,您会收到令人费解的错误消息:
cmdUpdate.CommandType = CommandType.StoredProcedure;
关于sql-server - 存储过程错误附近的语法不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/278361/