J'ai le code suivant dans mon projet ASP.NET et je n'arrive toujours pas à comprendre pourquoi ma table SQL Server enregistre le nom des parameters au lieu des valeurs. Toute aide serait appréciée.
[WebMethod] public static void InsertMethod(ssortingng firstname, ssortingng lastname) { SqlConnection con = new SqlConnection(@"Data Source=KIMBERLY\SQLSERVER02;Initial Catalog=Chalegh;User ID=***;Password=***"); SqlCommand cmd = new SqlCommand("insert into TestTable values('@Firstname','@Lastname')", con); SqlParameter paramFirstName = new SqlParameter(); paramFirstName.ParameterName = "@Firstname"; paramFirstName.Value = firstname; cmd.Parameters.Add(paramFirstName); SqlParameter paramLastName = new SqlParameter(); paramLastName.ParameterName = "@Lastname"; paramLastName.Value = lastname; cmd.Parameters.Add(paramLastName); con.Open(); cmd.ExecuteNonQuery();
Supprimez les guillemets et utilisez la méthode AddWithValue
comme ceci:
SqlCommand cmd = new SqlCommand("insert into TestTable values(@Firstname,@Lastname)", con); cmd.Parameters.AddWithValue("@Firstname",firstname); cmd.Parameters.AddWithValue("@Lastname",lastname);
Votre véritable problème réside dans les guillemets . @Firstname
vous utilisez des guillemets, @Firstname
et @Lastname
sont traités comme des valeurs réelles au lieu de parameters. Vous n'avez pas besoin d'utiliser la méthode AddWithValue
, mais elle est plus courte et facile à utiliser.Vous n'avez pas besoin de créer SqlParameter
pour chaque paramètre et définissez chaque propriété une par une.