Je viens de commencer à utiliser SQL Server 2008. J'ai une application winforms qui doit insérer des données de l'application dans la base de données et certaines valeurs de zone de texte peuvent être vides. Après googling pour chercher comment faire que j'ai trouvé quelque chose mais je voudrais une explication.Insérer une ligne dans SQL Server avec C# Winforms
Je trouve ce code d'insérer l'enregistrement dans DB (excluant le code de connexion)
stringInsert += "INSERT INTO MyDatabase(dateTime, Name, Surname)";
stringInsert += "VALUES(@Date, @NameString, @SurnameString)";
SqlCommand cmd = new SqlCommand(stringInsert, con);
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add(new SqlParameter("@Date", strTime));
cmd.Parameters.Add(new SqlParameter("@Name", StringName));
cmd.Parameters.Add(new SqlParameter("@Surname", StringSurname));
if (string.IsNullOrEmpty(StringName))
cmd.Parameters.Add(new SqlParameter("@Name", DBNull.Value.ToString()));
else
cmd.Parameters.Add(new SqlParameter("@Name", StringName));
Mais quelqu'un d'autre a écrit que la méthode cmd.Parameters.AddWithValue("@Name" , StringName);
faire le cas ailleurs en automatique parce que si StringName
est nul ou vide il définit DBNull.Value
maintenant, mes questions sont les suivantes:
Je ne comprends pas comment
cmd.Parameters.Add(new SqlParameter("@Name", StringName));
modifier stringInsert en StringName. Le "@Name" c'est seulement une partie de la chaîne alors peut-être que le symbole "@" fait quelque chose que je ne connais pas? Normalement, j'utilise le symbole @ quand j'ai besoin d'exclure l'échappement de cette façon @ "c: \ home"est-il correct d'utiliser
cmd.Parameters.AddWithValue("@Name" , StringName);
même si leStringName
est vide ou nul?est-ce la manière correcte de soumettre des données dans SQL Server DB avec beaucoup de zone de texte dans une application WinForm?
Merci
Merci beaucoup! Bonne journée! – user1107078