Трябва да зададете връзката към SqlCommand
, можете да използвате конструктора или свойството:
cmd.InsertCommand = new SqlCommand("INSERT INTO Application VALUES (@EventLog, @TimeGenerated, @EventType, @SourceName, @ComputerName, @InstanceId, @Message) ");
cmd.InsertCommand.Connection = connection1;
Силно препоръчвам да използвате using-statement
за всеки тип, внедряващ IDisposable
като SqlConnection
, също така ще затвори връзката:
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
}
Освен това не е необходимо да създавате нова връзка и DataAdapter
за всеки запис в foreach
, дори ако създаването, отварянето и затварянето на връзка ене означава, че ADO.NET ще създава, отваря и затваря физически връзка, но просто търси в пула за връзки за налична връзка. Независимо от това, това са излишни режийни разходи.