2013-08-02 45 views
1

我在寫一個代碼,它使用SQL查詢從數據集中調用列。我使用兩個參數來確定要選擇哪些行。一個是ProductSerialNumber,另一個是日期時間戳。見下面在SQL查詢中使用Date參數,ASP.net

Select TestStation FROM tblData 
    WHERE ProductSerialNumber = ? AND Datetimestamp = ? 

我的SQL查詢在數據集的數據表的productserialnumber爲文本格式,其他的格式設置爲日期(如你所期望的)。

在我的vb.net代碼中,我從另一個源獲取Datetimestamp(不要問爲什麼,唯一需要知道的是它捕獲一個有效的datetimestamp,標註爲日期,與tblData的條目),並使用預製查詢生成數據表。查詢被稱爲「TestStationLookUp」一個填充查詢

我vb.net代碼看起來像這樣

Dim dt as new dataset.tbldataDataTable 
    Dim dta As New DataSetTableAdapters.tbldataTableAdapter 
    Dim ProductSerialNumber as string = "XXXXXX" 
    Dim DateTimeStamp as date = SomeDateVariable 
    dta.TestStationLookUp(dt, ProductSerialNumber, DateTimeStamp) 

正是在這裏的代碼告訴我:

Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints. 

     Line 7366:    dataTable.Clear 
     Line 7367:   End If 
Error: Line 7368:   Dim returnValue As Integer = Me.Adapter.Fill(dataTable) 
     Line 7369:   Return returnValue 
     Line 7370:  End Function 

我不明白爲什麼這個錯誤出現了,因爲所有事情都是按照應有的方式來確定的。這個確切的代碼設置在我的代碼中的其他地方工作(除了它不使用日期),但是這個特定的代碼不起作用。另外,如果我轉到解決方案中的數據集,則可以對此查詢使用「預覽數據」,然後鍵入EXACT相同的參數(與表中記錄匹配的ProductSerialNumber和DateTimeStamp,以及我使用的在我的VB代碼),它會讓我生產我想要的表。

任何人都可以協助嗎?

+0

我很抱歉,我不明白您的評論一個有效的數字。 dta.TestStationLookUp是TableAdapter的查詢。我提供了上面的查詢代碼(由於保密原因,我只是更改了名稱) – user2646256

+0

如果增加字段的大小,該怎麼辦?你目前有多大尺寸? –

回答

1

此錯誤意味着您試圖訪問無效唯一ID「ProductSerialNumber」,也許它不存在

未能啓用約束。一行或多行包含違反非空,唯一或外鍵約束的值 。

不是傳遞的是來自數據集的變量,傳遞你肯定它存在於數據庫