2014-02-21 64 views
1
使用SqlTableAdapter填充数据集

我目前正在尝试根据特定的ID号填写表格加载的表格填充。根据ID#

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

不过,我只是想记录where ID = 1

我使用VB 2012与SQL Server

有人可以解释我如何去这样做?

代码的原始行是:

Me._6OrdersTableAdapter.Fill(Me.Online_Portal_Solutions_DatabaseDataSet._6Orders) 

当我尝试一个新的查询数据集中的设计师,我得到这样的警告信息添加到表:(不太清楚这意味着什么:

“新的命令文本与模式,从主查询的架构不同的返回数据,检查是否这种不希望您的查询的命令文本。”

我添加的查询结果如下:

SELECT OrderNoID, CustomerID, CollectionDate, DeliveryDate 
     , ServiceType, PostalZone, DeliveryAddress, Product 
     , HazardType, Weight, NoOfPallets, OtherNotes 
FROM [6Orders] 
WHERE (HaulierID = 1) 

我打电话查询fillhaulierjkp和改变的代码原有线路如下:

Me._6OrdersTableAdapter.fillhaulierjkp(Me.Online_Portal_Solutions_DatabaseDataSet._6Orders) 

然后当我运行的应用程序,我得到这个错误时,页面加载:

“无法启用约束。一行或多行包含违反非空,唯一或外键约束的值。“

我只想用select语句填充表适配器,但我希望用户能够浏览记录使用绑定导航

+2

可以放置一些代码。 – Shell

+0

发布一些相关的代码,显示你到目前为止已经尝试了什么,然后我们可以尝试修复必要的部分,以获得ID = 1的记录。 – har07

+0

@ har07我已经提供了我在这个问题中尝试过的内容;你能告诉我我做错了什么吗? –

回答

0

最后一个问题是由于您的DataSet上设置的约束。也许你有列不接受空值或违反唯一键。无论哪种方式,您必须删除错误约束,更改您的服务器查询以便它与您的模式相匹配或通过将EnforceConstraints设置为False来关闭约束条件。通常,当引发此错误时,您也会发生错误行他们的RowError属性指示什么约束导致问题。

至于你之前的问题,它是由你的服务器结果集与DataTable模式所期望的不同所引起的。例如,如果您有一个String列,其名称与int服务器列匹配,则会引发此错误。

0

引用您的错误,请确保您使用的是查询编辑器,以便您可以在所选列中获得一个可视化对象。

对于参数加载表单

更换

where ID = 1 

where ID = ? 

这将创建一个在你的表适配器@参数1语句。

然后填入参数例如nPID

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