À l'aide de SqlCommand , comment ajouter plusieurs paramètres à son objet , d'insertion par winform dans la table sql
J'ai dix zones de texte dans mon winform, et j'ai besoin d'enregistrer le texte tapé dans ces zones de texte en 10 colonnes d'une base de données sql de la table. donc, pour cette puis-je écrire :
INSERT INTO item (c1,c2,c3...,c10) values (@a,@b....@j)
cmd.Parameters.Add("@a",SqlDbType.Varchar)
cmd.Parameteres["@a"].Value=textbox1.Text;
cmd.Parameters.Add("@b",SqlDbType.Varchar)
cmd.Parameteres["@b"].Value=textbox2.Text;.
.
.
.
.
cmd.Parameters.Add("@j",SqlDbType.Varchar)
cmd.Parameteres["@j"].Value=textbox10.Text;
OU dix requêtes distinctes pour chaque zone de texte:
INSERT INTO item (c1) values (@a)
cmd.Parameters.Add("@a",SqlDbType.Varchar)
cmd.Parameteres["@a"].Value=textbox1.Text;
INSERT INTO item (c2) values (@b)
cmd.Parameters.Add("@b",SqlDbType.Varchar)
cmd.Parameteres["@b"].Value=textbox2.Text;.
.
.
INSERT INTO item (c10) values (@j)
cmd.Parameters.Add("@j",SqlDbType.Varchar)
cmd.Parameteres["@j"].Value=textbox10.Text;
ou, s'il vous plaît suggérer un code efficace.
Comment ajouter plusieurs paramètres cmd dans un seul état? est-il possible?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser une méthode d'extension, comme ceci:
Puis l'appeler comme ceci:
Je l'ai utilisé que dans quelques projets sans problèmes.
Je pense que vous pouvez utiliser Les paramètres.AddWithValue() méthode.
La 2 "solutions" que vous suggérez dans votre question, sont sémantiquement différents.
Lequel vous devez utiliser dépend de votre table-layout.
La première solution insère un enregistrement dans la table, la deuxième instruction insert insère un enregistrement (ligne) pour chaque valeur (zone de texte).
Difficile de donner une bonne réponse ici, puisque nous ne savons pas ce que vous allez enregistrer dans la table, et donc , nous ne pouvons pas dire comment vous devez l'enregistrer (comment vous l'enregistrez, il est inherintly dépend de la façon dont vous devriez appeler l'instruction SQL insert).
Vous pouvez utiliser une fonction comme ceci:
Pas le meilleur sans doute, mais fonctionnelle.
Appel ce lien:
Ou vous pouvez utiliser une extension comme suggéré par @Matt Hamilton pour ajouter cette fonction dans DBCommand classe.