我编写了一个函数来获取数据库中对象的列表
public List<T> GetList<T>() where T: new()
{
IDbCommand dbCmd = dbcon.CreateCommand();
dbCmd.CommandText = "SELECT * FROM " + typeof(T).FullName;
IDataReader reader = dbCmd.ExecuteReader();
DataTable schemaTable = reader.GetSchemaTable();
List<T> returnList = new List<T>();
foreach (DataRow row in schemaTable.Rows)
{
T obj = new T();
foreach(var prop in obj.GetType().GetProperties())
{
prop.SetValue(obj, row[prop.Name], null);
}
returnList.Add(obj);
}
return returnList;
}
不过,如果我为我的武器类运行这个
public int ID { get; set;}
public int Cost { get; set; }
public int Power { get; set; }
public int Distance { get; set; }
我得到25列,如果我运行的怪物类,我得到相同的25列,这是由“列名称”,“列序号”,“列大小”,“数字精度”等。。。
因此,我无法设置“Cost”属性,因为此数据集没有Cost列名。
我怎样才能得到正确的计划?