【发布时间】:2009-05-19 22:49:31
【问题描述】:
我正在维护一些 C# 2.0 代码,程序员使用一种模式,即通过打开 DataReader 然后将其传递给对象的构造函数来读取业务对象的集合。我看不出这有什么明显的问题,但对我来说感觉很糟糕。这样做可以吗?
private static void GetObjects()
{
List<MyObject> objects = new List<MyObject>();
string sql = "Select ...";
SqlConnection connection = GetConnection();
SqlCommand command = new SqlCommand(sql, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
while (reader.Read())
objects.Add(new MyObject(reader));
reader.Close();
}
public MyObject(SqlDataReader reader)
{
field0 = reader.GetString(0);
field1 = reader.GetString(1);
field2 = reader.GetString(2);
}
【问题讨论】:
-
我的例子不清楚,但假设 MyObject 是一个单独的类。
-
您可以更改您的代码以使其成为一个类... :)
标签: c# constructor sqldatareader