【发布时间】:2010-09-21 15:47:29
【问题描述】:
我正在更新一长串记录。在我的代码中,一切都按预期运行,直到它执行查询。我得到一个
“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();
}
}
【问题讨论】:
标签: sql-server stored-procedures ado.net .net-3.5