例我有两条SQL语句
Selete * from a;
Selete * from b;
一般我是OPEN两次执行
这样我感觉很浪费
能不能一次性返回多个结果集。

解决方案 »

  1.   

    Selete * from a,b;返回后在拆开
      

  2.   

    我明白您的意思。。
    如果我的SQL语句复杂点。这样就没法实现了。
      

  3.   

    Open两次也不会降低性能吧。string sql = "Selete * from a  Selete * from b";
    获取结果绑定到DataSet(如ds)
    表a的结果:ds.Table[0]
    表b的结果:ds.Table[1]我没试验,你测试下告诉我结果。呵呵。
      

  4.   

    写错了:
    表a的结果:ds.Tables[0]
    表b的结果:ds.Tables[1]
      

  5.   

    strSQL="select * from a;select * from b";
    DataSet ds = SqlHelper.ExecuteDataset(cn, CommandType.Text, strSQL);
      

  6.   

    ado.net当然可以返回多个结果集
    如果你返回dataset,则用索引去访问相应的结果集ds.Tables[index]如果返回datareader,则用dr.NextResult()访问下一个结果集
      

  7.   

    select * from 表明1,表明2
      

  8.   

    strSQL="select * from a;select * from b";
    DataSet ds = SqlHelper.ExecuteDataset(cn, CommandType.Text, strSQL);表a的结果:ds.Table[0]
    表b的结果:ds.Table[1]
      

  9.   

    没错。dataSet 只要你返回多个结果集就可以从下标获取各个结果集。
      

  10.   

    dataset直接存两个记录集,OPen一次就行了
      

  11.   

    string sql = "Selete * from a Selete * from b";
    获取结果绑定到DataSet(如ds)
    表a的结果:ds.Table[0]
    表b的结果:ds.Table[1]这个对的,注意返回的一定要是dataset。
      

  12.   

    T-SQL:
    SELECT * from table1
    SELECT * from table2C#:
    定义一个DataSet去接
      

  13.   

    Selete * from a;
    Selete * from b;
    这两条语句放在同一个存储过程中运行就可以了,我看好11楼的代码
      

  14.   

    declaer @t1 nvchar(max),@t2 nvchar(max)
    select @t1='select 8 from a'
    select @t2='select * from b'
    exec(@t1+@t2)
    前面:(dataSet)ds.tables[0],(dataSet)ds.tables[1],
      

  15.   

    你直接返回两个结果集不就行了?DS.Tables[0] or DS.Tables[1] 这样去标记开就行了啊!Ds本来就能放多个结果集的!
      

  16.   

    string strSQL = "SELECT * FROM a;SELECT * FROM b";用DataSet接收ds.Tables[0]就是a表中记录勒ds.Tables[1]就是b表中记录勒
      

  17.   


    或用dataset,自动打开关闭连接
      

  18.   

    dataset 不行么? n个table 都可以放进去的...
      

  19.   

    启用Ado.net的“多重活动结果集”就能open一次,多次访问数据库。情况为False,要开启只需在连接字符串后面加上“MultipleActiveResultSets=True;”例如: 
    "Data Source=.;User ID=sampleuser;Password=1234;MultipleActiveResultSets=True;" 
      

  20.   

    只要每条语句之间用;隔开就可以了,随便你写多少条,理论上。
    String strSQL="SELECT * FROM table1;select name from table2;select * from table3";查询出来结果集为DATASET,里面分别由DATATABLE组成
    DataTable dt1=ds.Tables[0];
    DataTable dt2=ds.Tables[1];
    DataTable dt3=ds.Tables[2];
      

  21.   


    string sql = "select * from a;select * from b;"
    执行数据库访问
    返回的dataset自动会包含两个datatable