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
Mary-Kate OlsenOriginal
2025-01-03 15:49:401008Durchsuche

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;

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();
        }
    }
}

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

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!

Stellungnahme:
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