Rumah > pembangunan bahagian belakang > C++ > Mengapakah C# `ExecuteNonQuery` saya membuang ralat 'Harta sambungan tidak dimulakan'?

Mengapakah C# `ExecuteNonQuery` saya membuang ralat 'Harta sambungan tidak dimulakan'?

Mary-Kate Olsen
Lepaskan: 2025-01-04 05:47:39
asal
526 orang telah melayarinya

Why is my C# `ExecuteNonQuery` throwing a

ExecuteNonQuery: Connection Property Not Initialized

Isu yang dihadapi dalam kod C# yang disediakan ialah sifat Sambungan SqlCommand bernama InsertCommand tidak telah ditetapkan, membawa kepada ralat "ExecuteNonQuery: Connection property has not been dimulakan."

Untuk menyelesaikan ralat ini, anda mesti memberikan sifat Sambungan secara eksplisit kepada InsertCommand. Ini boleh dicapai menggunakan sama ada sifat Sambungan atau pembina SqlCommand.

// 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);
Salin selepas log masuk

Selain itu, disyorkan untuk menggunakan pernyataan penggunaan untuk objek IDisposable seperti SqlConnection dan SqlCommand. Ini memastikan bahawa sumber dilupuskan dengan betul selepas digunakan.

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();
    }
}
Salin selepas log masuk

Dengan membuat pelarasan ini, sifat sambungan InsertCommand akan ditetapkan dengan betul dan kod harus dilaksanakan tanpa menghadapi ralat.

Atas ialah kandungan terperinci Mengapakah C# `ExecuteNonQuery` saya membuang ralat 'Harta sambungan tidak dimulakan'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan