0

我已经创建了类库应用程序。我在其中同时创建多个线程,每个线程在同一个 SQL 服务器表中插入新记录和更新。当我通过线程插入记录时,一些记录会重复并且在更新记录线程时没有获得适当的值,所以我从 DAL 得到一个异常是“未找到/更改行”。该怎么办?DAL:插入和更新的单独方法(LINQ to SQL)类库:

Class A
{
    Method AA()
    {
    Insert record code through DAL(Call  for DAL)
    //
    // some code here
    //
    Update the same record code through DAL(Call for DAL)
}

class B
{
    Method BB()
    {
        //Creating multiple threads simultaneously which calls the same method AA()
    }
}
}

但是,在 DAL 方法中,如前所述,它在更新或插入时会出现异常。

4

2 回答 2

0

我建议不要运行多个线程来更新一个表:

  1. 您将遇到记录/页面/表锁定问题,并且有效地您的更新将连续运行而不是并行运行。
  2. 您将需要打开多个数据库连接(不好)或在同一连接上执行多个查询(那么在多个线程上这样做的目的是什么?)。
  3. 它似乎没有必要,并且使 SQL Server 准备有效地做的事情过于复杂:为您插入多条记录。
于 2013-10-18T03:46:40.563 回答
0

我做了以下事情来解决我的问题:从 .dbml 文件中选择表,您要在其中插入多线程的多条记录并右键单击每个字段,然后在属性窗口中将属性更新检查设置为从不。它按我的意愿工作。在此处输入图像描述.

于 2013-10-25T05:39:33.993 回答