【发布时间】:2010-09-22 04:48:16
【问题描述】:
我有这样的代码
public class People
{
public string name { get; set; }
}
public class Animal
{
public string age { get; set; }
}
class Test
{
public void DataPeopleList()
{
string sql = "SELECT * FROM People";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader rdr = cmd.ExecuteReader();
List<People> list = new List<People>();
while (rdr.Read()) {
People p = new People();
p.name = rdr["name"].ToString();
list.Add(p);
}
rdr.Close();
}
public void DataAnimalList()
{
string sql = "SELECT * FROM Animal";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader rdr = cmd.ExecuteReader();
List<People> list = new List<People>();
while (rdr.Read())
{
People p = new People();
p.name = rdr["age"].ToString();
list.Add(p);
}
rdr.Close();
}
}
我觉得对我不好。我可以写给类作为参数,所以当我想要加载数据时,我只需将查询和类作为参数..例如我想要的代码:
public void LoadData(string query, Type ClassName)
{
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader rdr = cmd.ExecuteReader();
List<ClassName> list = new List<ClassName>();
while (rdr.Read())
{
ClassName p = new ClassName();
//p.name = rdr["age"].ToString(); i dont have idea in this part
list.Add(p);
}
rdr.Close();
}
所以我足以调用类似的方法
public void DataAnimalList()
{
string sql = "SELECT * FROM Animal";
LoadData(sql,class Animal);
}
你能给我一个答案或提示吗.. 提前致谢
【问题讨论】:
-
您是否考虑过改用 ORM?