2008-10-10 88 views

回答

7

我假設你的意思是「而不是將結果加載到DataTable」?

優點:您可以控制數據的加載方式。您可以詢問特定的數據類型,除非您想要,否則您最終不會將所有數據集全部加載到內存中。基本上,如果你想要數據但不需要數據表(例如,你將填充你自己的收集類型),你不會得到中間步驟的開銷。

缺點:您在控制數據的加載方式,這意味着犯錯很容易,而且還有更多工作要做。

這裏你的用例是什麼?您是否有充分理由相信使用正常(或強類型)數據表的開銷會嚴重影響性能?如果我有充足的理由,我只會直接使用SqlDataReader。

+0

我完全同意你的答案,喬恩。感謝你的簡單回答。 – 2014-05-26 14:38:45

1

這取決於你需要做什麼。如果從數據庫中取回一頁結果(比如20條記錄),最好使用數據適配器填充DataSet,並將其綁定到UI中的某些內容。

但是,如果您需要處理多個記錄,一次一個,請使用SqlDataReader。

1

優點:更快,更少的內存。缺點:必須保持連接,一定要記得關閉讀卡器。

3

關鍵優勢顯然是速度 - 這是您選擇SQLDataReader的主要原因。

尚未提及的一個潛在缺點是SQLDataReader僅僅是前向的,所以你只能按順序遍歷記錄 - 這是允許它如此之快的事情之一。在許多情況下,這很好,但如果您需要多次迭代記錄或添加/編輯/刪除數據,則需要使用其中一種替代方法。

它也會保持連接狀態,直到您完成所有記錄並關閉閱讀器(當然,您可以選擇先關閉它,但不能訪問任何剩餘記錄)。如果您在對記錄進行迭代時對記錄執行任何冗長的處理,則可能會發現影響與數據庫的其他連接。

-1

數據可能無法得出結論,而且您無法控制自己的行爲,因爲路上的牛奶人爲什麼一直需要隨身攜帶數據,否則他們會被數據破解並且警察不會攜帶任何數據,因爲他們認爲保留其他人的數據是錯誤的,而錯誤的是這樣做。有一個女孩生活在謝菲爾德,她喜歡出去玩大多數時間,因爲她在屋裏,這就是爲什麼我不喜歡跟她說話,因爲她的父母和她的其他作品被帶到了和平的花園裏,這是一個地方每個人都喜歡唱歌和留下。通常着名的明星都會掛斷,但總是有最高的安全感,因爲我們不想讓他們陷入絕境。 KK見你現在我需要2去冰冷西部PEACE !!!£「$$$由MOney MAN $$$$

相關問題