c# code
/// <summary><br /> /// 將DataTable轉換為list<br /> /// </summary><br /> /// <typeparam name="T"></typeparam><br /> /// <param name="dt"></param><br /> /// <returns></returns><br /> public static IList<T> DataTableToList<T>(DataTable dt)<br /> {<br /> if (dt == null)<br /> return null;<br /> IList<T> result = new List<T>();<br /> for (int j = 0; j < dt.Rows.Count; j++)<br /> {<br /> T _t = (T)Activator.CreateInstance(typeof(T));<br /> PropertyInfo[] propertys = _t.GetType().GetProperties();<br /> foreach (PropertyInfo pi in propertys)<br /> {<br /> for (int i = 0; i < dt.Columns.Count; i++)<br /> {<br /> // 屬性與欄位名稱一致的進行賦值<br /> if (pi.Name.Equals(dt.Columns[i].ColumnName))<br /> {<br /> if (dt.Rows[j][i] != DBNull.Value)<br /> {<br /> if (pi.PropertyType.ToString() == "System.Int32")<br /> {<br /> pi.SetValue(_t, Int32.Parse(dt.Rows[j][i].ToString()), null);<br /> }<br /> if (pi.PropertyType.ToString() == "System.DateTime")<br /> {<br /> pi.SetValue(_t, Convert.ToDateTime(dt.Rows[j][i].ToString()), null);<br /> }<br /> if (pi.PropertyType.ToString() == "System.String")<br /> {<br /> pi.SetValue(_t, dt.Rows[j][i].ToString(), null);<br /> }<br /> if (pi.PropertyType.ToString() == "System.Boolean")<br /> {<br /> pi.SetValue(_t, Convert.ToBoolean(dt.Rows[j][i].ToString()), null);<br /> }<br /> }<br /> else<br /> pi.SetValue(_t, null, null);<br /> break;<br /> }<br /> }<br /> }<br /> result.Add(_t);<br /> }<br /> return result;<br /> }
ps: 幾個月沒用csdn部落格了,依然一如既往的磋,不容易啊....