jonson1126
各种问题 各种方法 各种解决 路要自己走一遍才知个中滋味

适用: 一般用在datatable排序的时候:先将datatable转换成dataview然后排序,再转换成datatable。

DataTable dtgradetemp = BLL.BaseSetting.PNGrade.GetPNGrade(longpn);
                            DataView dv = new DataView(dtgradetemp);
                            dv.Sort = "Priority desc";
                            DataTable dtgrade = GetDataTable(dv);
// <summary>
/// 将DataView转换为DataTable
/// </summary>
/// <param name="obDataView"></param>
/// <returns></returns>
public DataTable GetDataTable(DataView obDataView)
{
if (null == obDataView)
{
throw new ArgumentNullException("DataView", "Invalid DataView object specified");
}

DataTable obNewDt = obDataView.Table.Clone();
int idx = 0;
string[] strColNames = new string[obNewDt.Columns.Count];
foreach (DataColumn col in obNewDt.Columns)
{
strColNames[idx++] = col.ColumnName;
}

IEnumerator viewEnumerator = obDataView.GetEnumerator();
while (viewEnumerator.MoveNext())
{
DataRowView drv = (DataRowView)viewEnumerator.Current;
DataRow dr = obNewDt.NewRow();
try
{
foreach (string strName in strColNames)
{
dr[strName] = drv[strName];
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
obNewDt.Rows.Add(dr);
}
return obNewDt;
}

 

posted on 2013-10-08 17:14  jonson1126  阅读(899)  评论(0编辑  收藏  举报