c#
            DataSet ds = new DataSet();
            SqlConnection sqlcon1 = new SqlConnection(Sqlstr);
            sqlcon1.Open();
            SqlDataAdapter da = new SqlDataAdapter("Prc_D_get_Server_info", sqlcon1);
            da.SelectCommand.CommandType = CommandType.StoredProcedure;
            da.Fill(ds);
sql存储过程Prc_D_get_Server_info:
CREATE PROCEDURE Prc_D_get_Server_info
AS   begin 
       select depart_id,depart_name from rs_department as kk
       select * from rs_workstatus
       select * from xm_xmfl
   end
GO
这时,我只能用ds.Tables[0]、ds.Tables[1]获取数据,如果表多了,就很不方便,想用ds.Tables["rs_department"]的方式,该怎么做呢?

解决方案 »

  1.   

    da.Fill(ds);
    Fill方法还有一种调用方式:
    da.Fill(ds,"rs_department");
    指定表名就可以了!
      

  2.   

    CREATE PROCEDURE Prc_D_get_Server_info
    AS  begin  
      select depart_id,depart_name from rs_department as kk
      select * from rs_workstatus
      select * from xm_xmfl
      end
    GO楼主的存储过程这样写,可以返回 三个表? 本人觉得是一个存储过程对应一个 result,,返回的时候用 表名来接收。
      

  3.   

    这个存储过程返回的是个数据集,包括table[0],table[1],table[2]三个表,你可以自己调试看看