2012-08-17 77 views
1

平台:V4.0时,SQL Server 2008,Windows 2003上DataAdaptor.Fill(数据集) - 主键冲突错误

下面代码抛出SQLException在FillMethod

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

不知道为什么在填充方法。它不是每次都发生。 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

我有类似的代码来填充数据集与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表不同的主键设置。

I.e.如果您的SQL表有两个设置为主键的字段,但您的本地表只有一个字段设置为键,则当您尝试将行插入本地表时,可能会出现零星的键违规错误。