public List ShowMessage() { List obj = new List(); DataTable dt = new DataTable(); dt.Columns.Add("ID"); dt.Columns.Add("Name"); dt.Rows.Add("1","AAA"); dt.Rows.Add("2", "BBB"); dt.Rows.Add("3", "CCC"); foreach (DataRow dr in dt.Rows) { obj.Add(dr); } return obj; }
这是错误 –
如果列表对象有任何Typed DataType,就像这样
public class MyObj { public string Name { get; set; } public int ID { get; set; } }
那么你可以这样做
private List test(DataTable dt) { var convertedList = (from rw in dt.AsEnumerable() select new MyObj() { ID = Convert.ToInt32(rw["ID"]), Name = Convert.ToString(rw["Name"]) }).ToList(); return convertedList; }
或者如果你仍然想要List那么就这样做
private List
我希望你要做的是将数据表中的对象(可能是从查询返回)插入到List中。
public List ShowMessage2(DataTable dtInput) { List objectList = new List(); foreach(DataRow dr in dtInput.Rows) { MyObj newObj = new MyObj(); newObj.ID = Convert.ToInt32(dr["ID"]); // Beware of the possible conversion errors due to type mismatches newObj.Name = dr["Name"].ToString(); objectList.Add(newObj); } return objectList; } public class MyObj { public int ID { get; set; } public string Name { get; set; } }
List obj = new List(); DataTable dt = new DataTable(); dt.Columns.Add("ID"); dt.Columns.Add("Name"); dt.Rows.Add("1", "AAA"); dt.Rows.Add("2", "BBB"); dt.Rows.Add("3", "CCC"); dataGridView1.DataSource = dt; // THIS IS ALL U NEED! Just bind the DataTable to the grid as data source!
在将DataRow添加到DataRow集合之前,需要创建DataRow。
例如,
DataTable dt = new DataTable(); dt.Columns.Add("ID"); dt.Columns.Add("Name"); var dr = dt.NewRow(); dr[0] = "1"; dr[1] = "AAA"; dt.Rows.Add(dr); ... likewise foreach (DataRow dr in dt.Rows) { obj.Add(dr); }