J'appelle le code ci-dessous.C#, sp_executesql et Syntaxe incorrecte
Sur la ligne (IDataReader dr = cmd.ExecuteReader()) Barfs sql avec une syntaxe incorrecte près de 'CompanyUpdate'.
using (SqlCommand cmd = new SqlCommand("CompanyUpdate"))
{
cmd.Parameters.Add("@CompanyID",SqlDbType.Int);
cmd.Parameters.Add("@Description",SqlDbType.VarChar,50);
cmd.Parameters["@CompanyID"].Value = companyid;
cmd.Parameters["@Description"].Value = description;
SqlConnection cn = new SqlConnection("Data Source=[datasource];Initial Catalog=dotNext;User ID=[user];Password=[password];Pooling=True;Application Name=dotNext");
cn.Open();
cmd.Connection = cn;
using (IDataReader dr = cmd.ExecuteReader())
{
if (dr.Read())
{
this.CompanyID = dr.GetInt32(0);
}
}
}
J'ai regardé SQLProfiler et a remarqué ce qui suit:
exec sp_executesql N'CompanyUpdate',N'@CompanyID int,@Description varchar(50)',@CompanyID=56,@Description='APC'
Son emballage mon esprit de commande un sp_executesql. Toutes mes autres commandes SQL sont simplement exécutées sans problèmes.
Donc, ma question est double: 1. Pourquoi utilise-t-il sp_executesql? 2. Qu'est-ce que je fais de mal?
Détails: sql2005, C#, VS2005
C'est tellement énervant !! Je vous remercie! –
lol - parfois il suffit d'un autre jeu d'yeux ... – BenAlabaster
Argh, merci. Pourquoi diable ne serait-ce pas une erreur si vous ajoutez des paramètres à un SqlCommand et ne le définissez pas à StoredProcedure ... – jcollum