DataAdapter.Fill(DataSet) - 主键冲突错误

时间:2012-08-17 13:19:00

标签: vb.net sql-server-2008 ado.net

平台:V4.0,SQL Server 2008,Windows 2003。

下面的代码在FillMethod上抛出SqlException:

  

“主键冲突错误。插入表失败”。

在填充方法中不确定原因。它不会每次都发生。 Column1和Column2 - 复合键。

Dim ObjDAdapter As SqlDataAdapter
String selectstring = "select * from Table where Column1 = 'A' and Column2 = 'B'"
ObjDAdapter = New SqlDataAdapter(selectString, myConnection)
ObjDAdapter.Fill(Dataset)

1 个答案:

答案 0 :(得分:1)

我有类似的代码用SQL查询中的行填充数据集,它工作正常。看看这是否有帮助:

Dim ObjDAdapter As SqlDataAdapter
String selectstring = "select * from Table where Column1 = 'A' and Column2 = 'B'"
ObjDAdapter = New SqlDataAdapter(selectString, myConnection)
ObjDAdapter.AcceptChangesDuringFill = False
ObjDAdapter.Fill(Dataset)

唯一的变化是将AcceptChangesDuringFill设置为false。

但听起来您创建的本地数据表可能与SQL表具有不同的主键设置。

即。如果您的SQL表将两个字段设置为主键,但您的本地表只有一个字段设置作为键,则在尝试将行插入本地表时可能会出现偶发的键冲突错误。