在C#中插入数据时抛出异常

时间:2013-08-08 12:38:58

标签: c# exception

我在插入数据时遇到警告。

Parallel.ForEach(user, data => Db.ExecuteQuery("insert into temptbl (userid,attflag,checktime,username)values('" +
                                                                     data.UserId + "','" + data.Flag + "','" + data.AttendanceDate + "','" +
                                                                     data.Name + "')"));

enter image description here

1 个答案:

答案 0 :(得分:4)

数据库连接对象不是线程安全的,并不打算同时在多个线程中使用。

您不应该在单个连接上并行化代码,而是需要为每个不同的线程建立单独的连接,因此您无法使用Parallel.ForEach

您可以在MSDN上看到此文档:

OleDbConnection Class,线程安全部分(靠近底部):

  

此类型的任何公共静态(在Visual Basic中为Shared)成员都是线程安全的。不保证任何实例成员都是线程安全的。

这意味着此类型的静态成员是线程安全的,而实例成员则不是,这意味着作为对象的类型不是线程安全的。