如果输出是table的话可以用
DataSet.Tables[0]
DataSet.Tables[1]
来拿结果两个sp的结果集

解决方案 »

  1. 如果输出是table的话 可以用 
    DataSet.Tables[0] 
    DataSet.Tables[1] 
    来拿结果两个sp的结果集
      

  2. 如果一个存储过程proc1 有一个参数
    执行
    proc1 'a' 
    得到
    1 2 
    1 3
    1 4
    执行 proc1 'b'
    得到
    1 5
    1 6
    2 7
    现在想在一个存储过程中得到
    a 1 2
    a 1 3
    a 1 4
    b 1 5
    b 1 6
    b 2 7
    即在一个存储过程中用不同的参数执行相同的存储过程,并把参数,结果集合并到一张表中输出.
      

  3. //合并2个DataTable   
    DataTable dt3 = dt1.Clone();
    for (int i = 0; i < dt2.Columns.Count; i++)
    {
        dt3.Columns.Add(dt2.Columns[i].ColumnName);
    }
    object[] obj = new object[dt3.Columns.Count];for (int i = 0; i < dt1.Rows.Count; i++)
    {
        dt1.Rows[i].ItemArray.CopyTo(obj, 0);
        dt3.Rows.Add(obj);
    }
    if (dt1.Rows.Count >= dt2.Rows.Count)
    {
        for (int i = 0; i < dt2.Rows.Count; i++)
        {
            for (int j = 0; j < dt2.Columns.Count; j++)
            {
                dt3.Rows[i][j + dt1.Columns.Count] = dt2.Rows[i][j].ToString();
            }
        }
    }
    else
    {
        DataRow dr3;
        for (int i = 0; i < dt2.Rows.Count - dt1.Rows.Count; i++)
        {
            dr3 = dt3.NewRow();
            dt3.Rows.Add(dr3);
        }
        for (int i = 0; i < dt2.Rows.Count; i++)
        {
            for (int j = 0; j < dt2.Columns.Count; j++)
            {
                dt3.Rows[i][j + dt1.Columns.Count] = dt2.Rows[i][j].ToString();
            }
        }
    }
      

类似问题 »