【问题标题】:Using Date parameter in SQL query, ASP.net在 SQL 查询中使用 Date 参数,ASP.net
【发布时间】:2013-08-03 22:08:49
【问题描述】:

我正在编写一个使用 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 代码),它会给我生成我想要的表格。

有人可以帮忙吗?

【问题讨论】:

  • 对不起,我不明白你的评论。 dta.TestStationLookUp 是 TableAdapter 的查询。我提供了上面的查询代码(出于保密原因,我只是更改了事物的名称)
  • 如果增加字段大小会怎样?你目前的尺寸是多少?

标签: asp.net sql vb.net visual-studio-2012 ado.net


【解决方案1】:

此错误表示您正在尝试访问无效的唯一 ID“ProductSerialNumber”,它可能不存在

未能启用约束。一行或多行包含值 违反非空、唯一或外键约束。

不要传递来自数据集的变量,而是传递一个您确定它存在于数据库中的有效数字

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-02
    相关资源
    最近更新 更多