Jac*_*ack 5 sql-server ado.net stored-procedures .net-3.5
我正在更新一长串记录.在我的代码中,一切都按预测运行,直到执行查询.我得到了
'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
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
如果您没有指定命令类型,我相信您可以得到令人费解的错误消息:
cmdUpdate.CommandType = CommandType.StoredProcedure;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5326 次 |
| 最近记录: |