日期:2014-05-18 浏览次数:20562 次
//取得处理之后的table
private DataTable GetTableByDS(DataSet das)
{
DataTable dt = das.Tables[0].Clone();
//记录行数最长的值
int intRowsCount = das.Tables[0].Rows.Count;
//记录行数最长的那一个table 的index
int indexDt = 0 ;
for (int i = 1; i < das.Tables.Count; i++)
{
if(intRowsCount < das.Tables[i].Rows.Count)
{
intRowsCount = das.Tables[i].Rows.Count ;
indexDt = i;
}
//没有重复column name 的情况下,不需要判断是否有重复的
dt.Columns.Add(das.Tables[i].Columns[1].ColumnName,typeof(Int32));
}
dt.AcceptChanges();
//记录行数最长的那一个table
DataTable keepDatadt = das.Tables[indexDt];
DataRow dr = null;
for (int i = 0; i < intRowsCount; i++)
{
dt.ImportRow(keepDatadt.Rows[i]);//添加一行资料
dr =dt.Rows[i];
for (int j = 0; j < das.Tables.Count; j++)
{
//为每个栏位赋值
dr[j + 1] = GetNumber(das.Tables[j], dt.Columns[0].ColumnName);
}
}
dt.AcceptChanges();
return dt;
}
//取得 某个栏位的值
private int GetNumber(DataTable dt, string strColumn1Value)
{
DataRow[] drs = dt.Select(string.Format("{0} = '{1}'", dt.Columns[0].ColumnName, strColumn1Value));
if (drs.Length > 0)
{
Convert.ToInt32(drs[0][1]);
}
else
{
return 0;
}
}