Rumah >pembangunan bahagian belakang >C++ >Mengapa `ExecuteNonQuery()` Gagal dengan Ralat 'Uninitialized Connection Property'?
Soalan:
Apabila cuba melaksanakan arahan SQL menggunakan(ExecuteNonQuery ), ralat ditemui menunjukkan bahawa sifat sambungan belum dimulakan. Apakah yang boleh menyebabkan isu ini?
Jawapan:
Mesej ralat, "ExecuteNonQuery: Sifat sambungan belum dimulakan," menunjukkan bahawa objek SqlConnection belum diperuntukkan dengan betul kepada objek SqlCommand. Untuk menyelesaikan isu ini, sifat sambungan SqlCommand mesti ditetapkan secara eksplisit.
Penyelesaian:
Satu kaedah untuk menetapkan sambungan adalah melalui pembina kelas SqlCommand :
cmd.InsertCommand = new SqlCommand("INSERT INTO Application VALUES (@EventLog, @TimeGenerated, @EventType, @SourceName, @ComputerName, @InstanceId, @Message) ", connection1);
Sebagai alternatif, sifat sambungan boleh diberikan secara langsung:
cmd.InsertCommand.Connection = connection1;
Pertimbangan Tambahan:
Kod Contoh:
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; // Other code... connection1.Open(); insertCommand.ExecuteNonQuery(); }
Atas ialah kandungan terperinci Mengapa `ExecuteNonQuery()` Gagal dengan Ralat 'Uninitialized Connection Property'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!