ExecuteNonQuery : la propriété de connexion n'a pas été initialisée
L'erreur "ExecuteNonQuery : la propriété de connexion n'a pas été initialisée" indique une connexion manquante entre le SqlCommand et la base de données. Pour résoudre ce problème, suivez ces étapes :
1. Attribuer une connexion à SqlCommand
Dans le code fourni, la connexion établie dans la ligne connection1.Open(); n’est pas affecté au InsertCommand utilisé dans la méthode ExecuteNonQuery. Pour résoudre ce problème, utilisez le constructeur ou la propriété pour attribuer la connexion à InsertCommand :
cmd.InsertCommand = new SqlCommand("..."); cmd.InsertCommand.Connection = connection1;
2. Utiliser l'instruction Using pour l'élimination des ressources
Il est recommandé d'utiliser l'instruction using pour supprimer automatiquement les objets IDisposable comme SqlConnection, qui ferme également la connexion à la fin du bloc d'instructions :
using (var connection1 = new SqlConnection(...)) { using (var cmd = new SqlDataAdapter()) { using (var insertCommand = new SqlCommand(...)) { // ... connection1.Open(); } } }
3. Optimiser la gestion des connexions
La création d'une nouvelle connexion pour chaque entrée de la boucle foreach n'est pas nécessaire. Vous pouvez optimiser cela en créant la connexion et les adaptateurs en dehors de la boucle et en les réutilisant :
var connection1 = new SqlConnection(...); var cmd = new SqlDataAdapter(); var insertCommand = new SqlCommand(...); insertCommand.Connection = connection1; ... connection1.Open(); // ... // No need to close the connection explicitly
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!