.net 根据ID使用SqlTableAdapter填充数据集

.net 根据ID使用SqlTableAdapter填充数据集,.net,sql-server,vb.net,ado.net,tableadapter,.net,Sql Server,Vb.net,Ado.net,Tableadapter,我目前正试图根据某个ID号在表单加载时填充tableadapter 已经提供的代码行用表中的所有记录填充表适配器 但是,我只想要ID=1的记录 我正在使用VB 2012和SQL Server 有人能解释一下我是怎么做的吗 原始代码行是: Me._6OrdersTableAdapter.Fill(Me.Online_Portal_Solutions_DatabaseDataSet._6Orders) 当我尝试在dataset designer中将新查询添加到表中时,我收到以下警告消息:不

我目前正试图根据某个ID号在表单加载时填充tableadapter

已经提供的代码行用表中的所有记录填充表适配器

但是,我只想要ID=1的记录

我正在使用VB 2012和SQL Server

有人能解释一下我是怎么做的吗

原始代码行是:

    Me._6OrdersTableAdapter.Fill(Me.Online_Portal_Solutions_DatabaseDataSet._6Orders)
当我尝试在dataset designer中将新查询添加到表中时,我收到以下警告消息:不太确定它的含义:

新命令文本返回的数据模式与主查询的模式不同。如果不需要,请检查查询的命令文本

我添加的查询如下:

SELECT OrderNoID, CustomerID, CollectionDate, DeliveryDate
        , ServiceType, PostalZone, DeliveryAddress, Product
        , HazardType, Weight, NoOfPallets, OtherNotes
FROM   [6Orders]
WHERE  (HaulierID = 1)
    Me._6OrdersTableAdapter.fillhaulierjkp(Me.Online_Portal_Solutions_DatabaseDataSet._6Orders)
我调用了查询FillHailerJKP,并将原始代码行更改如下:

SELECT OrderNoID, CustomerID, CollectionDate, DeliveryDate
        , ServiceType, PostalZone, DeliveryAddress, Product
        , HazardType, Weight, NoOfPallets, OtherNotes
FROM   [6Orders]
WHERE  (HaulierID = 1)
    Me._6OrdersTableAdapter.fillhaulierjkp(Me.Online_Portal_Solutions_DatabaseDataSet._6Orders)
然后,当我运行应用程序时,当页面加载时会出现以下错误:

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


我只想用select语句填充表适配器,但我希望用户能够使用绑定导航器浏览记录。最后一个问题是由于数据集上设置的约束造成的。可能有不接受空值的列,或者违反了唯一键。无论采用哪种方式,都必须删除故障约束、更改服务器查询以使其与模式匹配,或者通过设置为False来关闭约束。通常,当抛出此错误时,也会有错误行的属性指示导致问题的约束


至于前一个问题,它是由于您的服务器结果集与DataTable模式所期望的不同而导致的。例如,如果您有一个名称与int server列匹配的字符串列,则会引发此错误。

有关您的错误,请确保您正在使用查询编辑器,以便可以查看所选列

用于加载表单的参数

替换

where ID = 1

这将在表适配器中创建@parameter1语句

然后填入参数,例如nPID

Me.TA1.Fill(Me.DsClients.tblClients_Dems, nPID)

发布一些相关代码,显示您迄今为止尝试过的内容,然后我们可以尝试修复必要的部分,以仅获取ID=1的记录。@har07我已经提供了我在问题中尝试过的内容;你能告诉我我做错了什么吗?