Heim >Backend-Entwicklung >C++ >Warum gibt mein ExecuteNonQuery die Meldung „Verbindungseigenschaft wurde nicht initialisiert' aus?
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!