Heim > Backend-Entwicklung > C++ > Warum gibt mein ExecuteNonQuery die Meldung „Verbindungseigenschaft wurde nicht initialisiert' aus?

Warum gibt mein ExecuteNonQuery die Meldung „Verbindungseigenschaft wurde nicht initialisiert' aus?

Mary-Kate Olsen
Freigeben: 2025-01-03 15:49:40
Original
1065 Leute haben es durchsucht

Why Does My ExecuteNonQuery Throw

ExecuteNonQuery: Verbindungseigenschaft wurde nicht initialisiert

Der Fehler „ExecuteNonQuery: Verbindungseigenschaft wurde nicht initialisiert“ weist auf eine fehlende Verbindung zwischen dem hin SqlCommand und die Datenbank. Um dieses Problem zu beheben, führen Sie die folgenden Schritte aus:

1. Verbindung zu SqlCommand zuweisen

Im bereitgestellten Code wird die Verbindung in der Zeile „connection1.Open();“ hergestellt. ist nicht dem in der ExecuteNonQuery-Methode verwendeten InsertCommand zugewiesen. Um dies zu beheben, verwenden Sie entweder den Konstruktor oder die Eigenschaft, um die Verbindung dem InsertCommand zuzuweisen:

cmd.InsertCommand = new SqlCommand("...");
cmd.InsertCommand.Connection = connection1;
Nach dem Login kopieren

2. Use Using Statement for Resource Disposal

Es wird empfohlen, die Using-Anweisung zu verwenden, um IDisposable-Objekte wie SqlConnection automatisch zu entsorgen, wodurch auch die Verbindung geschlossen wird, wenn der Anweisungsblock beendet wird:

using (var connection1 = new SqlConnection(...))
{
    using (var cmd = new SqlDataAdapter())
    {
        using (var insertCommand = new SqlCommand(...))
        {
            // ...
            connection1.Open();
        }
    }
}
Nach dem Login kopieren

3. Optimieren Sie die Verbindungsverarbeitung

Das Erstellen einer neuen Verbindung für jeden Eintrag in der foreach-Schleife ist nicht erforderlich. Sie können dies optimieren, indem Sie die Verbindung und Adapter außerhalb der Schleife erstellen und wiederverwenden:

var connection1 = new SqlConnection(...);
var cmd = new SqlDataAdapter();
var insertCommand = new SqlCommand(...);
insertCommand.Connection = connection1;

...

connection1.Open();
// ...

// No need to close the connection explicitly
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum gibt mein ExecuteNonQuery die Meldung „Verbindungseigenschaft wurde nicht initialisiert' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage