从TableAdapter.GetData()获取单行

时间:2012-06-20 02:20:24

标签: asp.net vb.net

所以我最近在代码中遇到了这个解决方案,并且想知道它是否被认为是从强类型数据集/表中检索单行的“可接受”方式。

基本上我们拥有的是这样的:

Dim fooAdapter As New FooDataSetTableAdapters.FooTableAdapter()
Dim fooRow As FooDataSet.FooRow = CType(fooAdapter.GetData().Select("SomeFooField=50")(0), FooDataSet.FooRow)

with fooRow
..
..
end with

虽然上面的代码工作我的主要问题是调用fooAdapter.GetData()实际上会在应用Select()过滤器之前获取表中的所有数据,这可能会随着时间的推移减慢速度......是否有更清洁的东西这样做的方法还是这种做事好的方式?

编辑: 过滤条件不是主键字段,因此调用表的FindByFooID方法将无效...

1 个答案:

答案 0 :(得分:3)

使用数据集编辑器工具创建一个查询GetUniqueFoo,其中包含将根据SomeFooField进行过滤的SQL。您可以使用fooAdapter.GetUniqueFoo(SomeFooValue)运行它。