Pourquoi ai-je @firstname et @lastname dans ma table SQL?

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.