日期:2014-05-18 浏览次数:20493 次
//取得处理之后的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; } }