2012-08-17 52 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表有兩個設置爲主鍵的字段,但您的本地表只有一個字段設置爲鍵,則當您嘗試將行插入本地表時,可能會出現零星的鍵違規錯誤。