我正在编写一个使用 SQL 查询从数据集中调用列的代码。我使用两个参数来确定要选择的行。一个是 ProductSerialNumber,另一个是日期时间戳。请参阅下面的我的 SQL 查询
Select TestStation FROM tblData
WHERE ProductSerialNumber = ? AND Datetimestamp = ?
在数据集的数据表中,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
我不明白为什么会出现这个错误,因为一切都是按照它应该的方式来确定尺寸的。这个确切的代码设置在我的代码中的其他地方工作(除了它不使用日期),但是这个特定的部分不起作用。
此外,如果我转到解决方案中的数据集,我可以在此查询中使用“预览数据”并输入完全相同的参数(与表中的记录匹配的 ProductSerialNumber 和 DateTimeStamp 以及我在 vb 代码中使用的内容) 它会给我生成我想要的表格。
有人可以帮忙吗?