2010-04-06 26 views
1

我剛開始使用微軟的數據訪問應用程序塊。很少有關於使用該庫的正確方法的說明。只是想知道這是否是使用數據閱讀器的正確方法。C#:這是用於DAAB的SqlDataReader的正確方法

SqlDataReader reader = SqlHelper.ExecuteReader(config.ConnectionString, CommandType.Text, "select * from category"); 
List<string> a = new List<string>(); 
using (reader) 
{ 
    while (reader.Read()) 
    { 
      string t = reader.GetString(1); 
      a.Add(t); 
    } 

    return a; 
} 

將這樣做的一切都關閉嗎?有沒有內存泄漏的機會?

+0

CodePlex的最新版本(v6)現在有一些寫得很好的文檔,說明和示例代碼。請參閱http://entlib.codeplex.com/releases,特別是可以作爲pdf下載的「Microsoft企業庫開發人員指南」,並很好地解釋了DAAB的用法和基本原理。 – mdisibio 2013-08-31 06:07:23

回答

2

把你的閱讀器初始化到using塊,我會避免使用列號,如果你可以,因爲他們本質上變成幻數。不幸的是,這隻需要使用列名,但是我發現列名不太可能比列偏移量更改,並且您始終可以將列名放在配置文件中。此外,請確保考慮到空列的可能性

using(var reader = SqlHelper.ExecuteReader(etc. etc. etc.)) 
{ 
    while(reader.read()){ 
    { 
     //Only need to do this if you don't want your string to be null 
     //and if the "columnName" column is nullable. 
     var stringValue = reader.IsDBNull(reader.GetOrdinal("columnName") 
         ? "" 
         : reader.GetString(reader.GetOrdinal("columnName")); 
     a.Add(stringValue); 
    } 
} 
相關問題