Heim > Backend-Entwicklung > C++ > Warum gibt mein C# „ExecuteNonQuery' den Fehler „Verbindungseigenschaft nicht initialisiert' aus?

Warum gibt mein C# „ExecuteNonQuery' den Fehler „Verbindungseigenschaft nicht initialisiert' aus?

Mary-Kate Olsen
Freigeben: 2025-01-04 05:47:39
Original
481 Leute haben es durchsucht

Why is my C# `ExecuteNonQuery` throwing a

ExecuteNonQuery: Verbindungseigenschaft nicht initialisiert

Das im bereitgestellten C#-Code aufgetretene Problem besteht darin, dass die Verbindungseigenschaft des SqlCommand namens InsertCommand nicht initialisiert wurde festgelegt, was zu dem Fehler „ExecuteNonQuery: Connection property has not been“ führte initialisiert.“

Um diesen Fehler zu beheben, müssen Sie die Connection-Eigenschaft explizit dem InsertCommand zuweisen. Dies kann entweder mit der Connection-Eigenschaft oder mit dem Konstruktor von SqlCommand erreicht werden.

// Option 1: Using the Connection property
cmd.InsertCommand.Connection = connection1;

// Option 2: Using the constructor
cmd.InsertCommand = new SqlCommand("INSERT INTO Application VALUES (@EventLog, @TimeGenerated, @EventType, @SourceName, @ComputerName, @InstanceId, @Message) ", connection1);
Nach dem Login kopieren

Zusätzlich wird empfohlen, die using-Anweisung für IDisposable-Objekte wie SqlConnection und SqlCommand zu verwenden. Dadurch wird sichergestellt, dass die Ressourcen nach der Verwendung ordnungsgemäß entsorgt werden.

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) "))
{
    insertCommand.Connection = connection1;
    cmd.InsertCommand = insertCommand;

    connection1.Open();

    foreach (EventLogEntry entry in alog.Entries)
    {
        // Assign parameter values
        // ...

        // Execute the insert command
        cmd.InsertCommand.ExecuteNonQuery();
    }
}
Nach dem Login kopieren

Durch diese Anpassungen wird die Verbindungseigenschaft des InsertCommand ordnungsgemäß festgelegt und der Code sollte ausgeführt werden, ohne dass der Fehler auftritt.

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

Quelle:php.cn
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