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