我刚刚开始使用微软的数据访问应用程序块。关于如何正确使用该库的说明很少。我只想知道这是不是使用数据阅读器的正确方式。
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;
}这样做会关闭所有的东西吗?有没有可能发生内存泄漏?
发布于 2010-04-07 01:17:55
把你的阅读器初始化放到using块中,我会尽量避免使用列号,因为它们本质上会变成幻数。不幸的是,这只需要使用列名,但我发现列名比列偏移量更不容易更改,而且您总是可以将列名放在配置文件或其他文件中。此外,请确保考虑到null列的可能性
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);
}
}发布于 2010-04-07 01:01:52
HAve看一下
The Enterprise Library Data Access Application Block, Part 2
https://stackoverflow.com/questions/2586674
复制相似问题