2012-06-20 22 views
0

所以我最近在代碼中遇到了這個解決方案,並想知道它是否被認爲是從Strongly Typed數據集/表中檢索單行的'可接受'方式。從TableAdapter.GetData獲取單行()

基本上我們所擁有的是這樣的:

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()將應用選擇之前居然搶在表中的所有數據( )過濾器可能會隨着時間的推移而減慢速度......有沒有更好的方法來做到這一點,或者這種做法很好嗎?

編輯: 過濾條件不是那麼調用表的FindByFooID方法不起作用......

回答

3

使用DataSet編輯工具來創建一個查詢GetUniqueFoo與將過濾器的基礎上SomeFooField的SQL中的PrimaryKey場。您可以使用fooAdapter.GetUniqueFoo(SomeFooValue)來運行它。

+0

是的,我同意這樣做更有意義,並且是我在上面提出解決方案之前最初走過的方式......但當時我沒有權限修改數據庫或添加存儲程序。 –