Anda perlu menetapkan koneksi ke SqlCommand
, Anda dapat menggunakan konstruktor atau properti:
cmd.InsertCommand = new SqlCommand("INSERT INTO Application VALUES (@EventLog, @TimeGenerated, @EventType, @SourceName, @ComputerName, @InstanceId, @Message) ");
cmd.InsertCommand.Connection = connection1;
Saya sangat menyarankan untuk menggunakan using-statement
untuk semua jenis yang menerapkan IDisposable
seperti SqlConnection
, itu juga akan menutup koneksi:
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();
// .... you don't need to close the connection explicitely
}
Selain itu Anda tidak perlu membuat koneksi baru dan DataAdapter
untuk setiap entri di foreach
, meskipun membuat, membuka, dan menutup koneksi tidak berarti ADO.NET akan membuat, membuka dan menutup fisik koneksi tetapi hanya melihat ke kumpulan koneksi untuk koneksi yang tersedia. Namun demikian, ini adalah biaya tambahan yang tidak perlu.