我正在更新一长串记录。在我的代码中,一切按预测运行,直到执行查询。我靠近 '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(); } }
我认为你是正确的,这些参数名称需要更正。但是,我认为不可思议的“不正确的语法”错误消息是由缺少的CommandType引起的。 – DOK 2008-11-10 16:56:58