平台: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)
答案 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表将两个字段设置为主键,但您的本地表只有一个字段设置作为键,则在尝试将行插入本地表时可能会出现偶发的键冲突错误。