Rumah >pembangunan bahagian belakang >C++ >Mengapa ExecuteNonQuery Gagal dengan 'Sambungan Tidak Dimulakan'?

Mengapa ExecuteNonQuery Gagal dengan 'Sambungan Tidak Dimulakan'?

Susan Sarandon
Susan Sarandonasal
2025-01-03 11:10:38130semak imbas

Why Does ExecuteNonQuery Fail with

Tidak Boleh ExecuteNonQuery: Sambungan Tidak Dimulakan

Isu berulang timbul apabila cuba melaksanakan pertanyaan menggunakan ExecuteNonQuery:

ExecuteNonQuery: Connection property has not been initialized. 

Penjelasan

Ralat ini berlaku apabila sifat Sambungan objek SqlCommand tidak diberikan. Sifat Sambungan mewujudkan sambungan antara SqlCommand dan pangkalan data. Tanpa sambungan yang ditetapkan, ExecuteNonQuery tidak boleh dilaksanakan.

Penyelesaian

Untuk menyelesaikan isu ini, tetapkan sambungan pangkalan data kepada sifat Sambungan objek SqlCommand:

cmd.InsertCommand.Connection = connection1;

Selain itu, adalah dinasihatkan untuk menggunakan pernyataan penggunaan untuk sumber pakai buang seperti SqlConnection. Amalan ini memastikan pelupusan sumber yang betul dan mengendalikan penutupan sambungan:

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...
        }
    }
}

Pengoptimuman

Untuk mengoptimumkan lagi prestasi, elakkan membuat berbilang sambungan dan penyesuai data untuk setiap lelaran dalam gelung. Wujudkan sambungan dan penyesuai data sekali di luar gelung dan gunakan semula dalam gelung. Ini mengurangkan overhed membuat dan menutup sambungan beberapa kali.

Atas ialah kandungan terperinci Mengapa ExecuteNonQuery Gagal dengan 'Sambungan Tidak Dimulakan'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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