C#:这是使用SABDataReader进行DAAB的正确方法

时间:2010-04-06 16:54:17

标签: c# sqldatareader daab

我刚刚开始使用微软的数据访问应用程序块。关于正确使用库的方法的说明很少。只是想知道这是否是使用数据阅读器的正确方法。

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;
}

一切都会以这种方式关闭吗?是否存在内存泄漏的可能性?

2 个答案:

答案 0 :(得分: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);
    }
}

答案 1 :(得分:0)