Ich aktualisiere eine lange Liste von Datensätzen. In meinem Code läuft alles wie vorhergesagt, bis es die Abfrage ausführt. Ich erhalte eineFalsche Syntax Fehler in der Nähe der gespeicherten Prozedur
falsche Syntax nahe 'TempUpdatePhysicalCityStateZip'
(mein Name der gespeicherten Prozedur). Ich habe es mit SQL Server Management Studio getestet und es läuft gut. Also bin ich mir nicht sicher, wo ich das falsch gemacht habe. Unten ist meine gespeicherte Prozedur und Code:
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
Hier mein Code:
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();
}
}
Ich denke, dass Sie richtig sind, und diese Parameternamen müssen korrigiert werden. Ich denke jedoch, dass die unergründliche "falsche Syntax" Fehlermeldung durch den fehlenden CommandType verursacht wird. – DOK