我刚刚开始使用微软的数据访问应用程序块。关于正确使用库的方法的说明很少。只是想知道这是否是使用数据阅读器的正确方法。
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 :(得分: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)