现在有两个表a,b如何能一次将两个表的内容返回到一个DataSet中,因我是在mobile下开发的,不支持存储过程,不知sql该如何写?高手指点哟

解决方案 »

  1.   

    两个表有关联的话就用inner join,
    没有关联的话,好像代码里sql语句可以写成
    "select * from a;select * from b";
    这种格式的。可以用NextResult()读取下一个表。
      

  2.   

    "select * from a;select * from b";
    这种写法是不可以的,提示sql错误。两表没有关联。
      

  3.   

    注:Oracle不支持多表,除利用存储过程玩。
    下面是我测试过的代码。vs2005访问sql server 2005 Northwind数据库。SqlConnection conn = new SqlConnection();
    conn.ConnectionString = "server=***;database=Northwind;uid=sa;pwd=";
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = conn;
    cmd.CommandText = "select * from Categories" + ";" + "select * from Employees";conn.Open();
    SqlDataReader reader = cmd.ExecuteReader();DataSet ds = new DataSet();
    DataTable dt1 = new DataTable();
    DataTable dt2 = new DataTable();
    ds.Tables.Add(dt1);
    ds.Tables.Add(dt2);dt1.Load(reader);
    //reader.NextResult();
    dt2.Load(reader);reader.Close();
    conn.Dispose();dataGridView1.DataSource = dt1;
    dataGridView2.DataSource = dt2;
      

  4.   

    dt1.Load(reader);
    //reader.NextResult();
    dt2.Load(reader);
    如何知道dt1取的就是Categories表的内容,而dt2就是 Employees的内容?
      

  5.   

    在.net精简版下不支持此功能的,而我要的是在精简版下的?
      

  6.   

    过一阵子我也可能要在精简版下开发了。先问你:是不支持dt.Load(IDataReader)还是不支持同时返回两个结果集这种方式?
      

  7.   

    要不在存储过程里返回‘同时’返回两个结果集?就像上面那个sql语句那样?试试?
      

  8.   

    通过一次连接同时获取两个表!我其实不太理解为什么一定要这么说。比如
    conn.Open();
    1、读取第一个表;
    2、读取第二个表。
    conn.Close();
    这不也算是一次连接获取两个表吗?
      

  9.   

    地區:北京
    年限:2年
    技術:.Net BS开发
    工資:avg>>5K + 福利,人性化公司,不加班,工作开心,心情愉快。
    公司性質:汽车门户网站,国内汽车行业前三名。 PS: 透露点消息,我们公司正在招.net BS开发人员,如果哪位同仁想换工作,是一个不错的机会选择,加[email protected] 说应聘即可!
      

  10.   

    select * from a;select * from b";
    这种写法是不可以的,提示sql错误。两表没有关联。
    SELECT xx,yy FROM TABLE1,TABLE2 試試;SQL的語法錯了!
      

  11.   

    select * from a union select * from b"