Heim >Backend-Entwicklung >C++ >Warum schlägt ExecuteNonQuery mit der Meldung „Verbindung nicht initialisiert' fehl?
Cannot ExecuteNonQuery: Verbindung nicht initialisiert
Ein wiederkehrendes Problem tritt auf, wenn versucht wird, eine Abfrage mit auszuführen ExecuteNonQuery:
ExecuteNonQuery: Connection property has not been initialized.
Erklärung
Dieser Fehler tritt auf, wenn die Connection-Eigenschaft des SqlCommand-Objekts nicht zugewiesen ist. Die Connection-Eigenschaft stellt die Verbindung zwischen dem SqlCommand und der Datenbank her. Ohne eine hergestellte Verbindung kann ExecuteNonQuery nicht ausgeführt werden.
Lösung
Um dieses Problem zu beheben, weisen Sie die Datenbankverbindung der Connection-Eigenschaft des SqlCommand-Objekts zu:
cmd.InsertCommand.Connection = connection1;
Darüber hinaus empfiehlt es sich, die using-Anweisung für verfügbare Ressourcen wie SqlConnection zu verwenden. Diese Vorgehensweise stellt die ordnungsgemäße Ressourcenentsorgung sicher und verwaltet das Schließen von Verbindungen:
using (var connection1 = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=syslog2;Integrated Security=True")) { using (var cmd = new SqlDataAdapter()) { using (var insertCommand = new SqlCommand("INSERT INTO Application VALUES (@EventLog, @TimeGenerated, @EventType, @SourceName, @ComputerName, @InstanceId, @Message) ")) { // Assign connection insertCommand.Connection = connection1; // Set other properties... connection1.Open(); // Execute query... } } }
Optimierung
Um die Leistung weiter zu optimieren, vermeiden Sie die Erstellung mehrerer Verbindungen und Datenadapter für jede Iteration in einem Schleife. Stellen Sie die Verbindung und den Datenadapter einmal außerhalb der Schleife her und verwenden Sie sie innerhalb der Schleife wieder. Dies reduziert den Aufwand für das mehrfache Erstellen und Schließen von Verbindungen.
Das obige ist der detaillierte Inhalt vonWarum schlägt ExecuteNonQuery mit der Meldung „Verbindung nicht initialisiert' fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!