2010-08-15 116 views
0

我有隻返回一行(總是)查詢,我想此行轉換爲類對象(可以說OBI)該數據對象我應該使用

我有使用數據表這樣的感覺類型的查詢是很多 但我真的不知道要使用哪個其他數據對象

數據讀取器?

有沒有辦法執行sql命令到數據行?

+0

我認爲這基本上是一個方便的問題。如果你可以更詳細地說明「將此行轉換爲類對象」的意思,那麼選擇這兩種可能性可能更容易 – Nicolas78 2010-08-16 14:12:40

回答

2

DataReader在這裏是最好的選擇 - DataAdapters和DataSet可能對單行有點矯枉過正,儘管如此說,如果性能不重要,那麼保持簡單並不是壞事。您不需要從DataReader - > DataRow - >您的對象,只需讀取DataReader的值,即可完成。

+0

你能告訴我怎麼做嗎? – maggie 2010-08-15 17:59:28

+0

請查看http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.aspx上的示例 - 請注意,您可以使用字段名而不是列順序讀者,例如博士(「MyField」)很好。 – 2010-08-15 18:06:06

0

datareader讓您查詢單個字段。如果你想把這行作爲一個單獨的對象,我相信DataTable/DataRowView對象系列實際上是一條可行的路。

+0

arrrr我知道我會得到2個不同的答案......哪一個選擇? – maggie 2010-08-16 13:17:30

+0

請檢查我對你的問題的評論。如果你不知何故需要DataRow對象來創建對象 - 這就是問題imo – Nicolas78 2010-08-16 14:13:57

+0

我只有一個datarow ....如果我需要datarow或不..這是問題的一部分:-) – maggie 2010-08-17 12:26:32

0

你可能會認真考慮看看Linq-to-SqlLinq-to-Entities

這些框架的吸引力在於它們提供了將數據庫數據自動序列化到對象中,抽象出連接管理的許多世俗細節,並通過提供強類型屬性提供更好的編譯時支持字符串鍵或列序號。

使用Linq時,檢索單個行與檢索多個行之間的區別通常只涉及將.Single().First()添加到您的查詢中。無論如何,如果您已經在使用或願意學習這些框架之一,您可能會看到數據訪問代碼的體積和難度大幅降低。

對於DataReader與DataSet/DataTable,分配和填充數據表需要更多的週期是正確的;但是,我非常懷疑,除非創建數量極高的數據庫調用,否則您會注意到其中的差異。

如果有幫助,這裏是使用數據讀取器和數據集的數據訪問的文檔示例。