我是新手,我想用这种方法给一个自定义类赋值,我参考了
http://blog.csdn.net/vip__888/archive/2010/04/19/5500588.aspx
我的类中有string 和int 和 datetime 三种类型我改写了一点点就是
public static IList<T> GetData(SqlDataReader dr)
{
List<T> list = new List<T>();
Type type = typeof(T);
PropertyInfo[] properties = type.GetProperties(); while (dr.Read())
{
T t = Activator.CreateInstance<T>(); for (int i = 0; i < properties.Length; i++)
{
//properties[i].SetValue(t, dr[i + 1], null); if (properties[i].GetType() == typeof(int))
{
properties[i].SetValue(t, Convert.ToInt32(dr[i + 1]), null);
}
//if (properties[i].GetType() == typeof(string))
//{ //}
}
list.Add(t);
}
return list;
}
但是这个方法返回错误,当然有错误
无法将类型为“System.Collections.Generic.List`1[My_serverHelp.my_server]”的对象强制转换为类型“My_serverHelp.my_server”。
my_serHelp是我自己写的类,请问这个类要如何引用?
http://blog.csdn.net/vip__888/archive/2010/04/19/5500588.aspx
我的类中有string 和int 和 datetime 三种类型我改写了一点点就是
public static IList<T> GetData(SqlDataReader dr)
{
List<T> list = new List<T>();
Type type = typeof(T);
PropertyInfo[] properties = type.GetProperties(); while (dr.Read())
{
T t = Activator.CreateInstance<T>(); for (int i = 0; i < properties.Length; i++)
{
//properties[i].SetValue(t, dr[i + 1], null); if (properties[i].GetType() == typeof(int))
{
properties[i].SetValue(t, Convert.ToInt32(dr[i + 1]), null);
}
//if (properties[i].GetType() == typeof(string))
//{ //}
}
list.Add(t);
}
return list;
}
但是这个方法返回错误,当然有错误
无法将类型为“System.Collections.Generic.List`1[My_serverHelp.my_server]”的对象强制转换为类型“My_serverHelp.my_server”。
my_serHelp是我自己写的类,请问这个类要如何引用?
T t = Activator.CreateInstance<T>();
List<t> list = new List<t>();要先确定T,再定义list
//SqlDataReader dr = dl.sqlhelp.dr("usp_select_server_ID1");
//GridView1.DataSource = dr;
//GridView1.DataBind();
//dr.Close();
SqlDataReader dr = sqlhelp.dr("usp_select_server_ID1"); //my_server server = (my_server)my_listHelp<my_server>.GetData(dr); //Response.Write(server.Who_server);
//List<my_server> server =(List<my_server>) my_listHelp<my_server>.GetData(dr);
my_server serv = ConvertTo<>() for (int i = 0; i < server.Count; i++)
{
Response.Write(server[i].Who_server + "<br/>");
}