Maison > développement back-end > C++ > Pourquoi mon ExecuteNonQuery renvoie-t-il « La propriété de connexion n'a pas été initialisée » ?

Pourquoi mon ExecuteNonQuery renvoie-t-il « La propriété de connexion n'a pas été initialisée » ?

Mary-Kate Olsen
Libérer: 2025-01-03 15:49:40
original
1003 Les gens l'ont consulté

Why Does My ExecuteNonQuery Throw

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;
Copier après la connexion

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();
        }
    }
}
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal