您需要将连接分配给
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将创建,打开和关闭一个 物理
连接,但只是眺望用于可用连接的连接池。但是,这是不必要的开销。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)