public DataSet GetDs()
        {
            DataSet ds = new DataSet();            string sql = @"select p.provincename,c.cityname,a.areaname from area a 
                                  left join city c on a.cityid=c.cityid
                                  left join province p on a.provinceid=p.provinceid
                                  where rownum<11;";
            string connStr = "";            OracleConnection conn = new OracleConnection(connStr);
            conn.Open();            OracleDataAdapter da = new OracleDataAdapter(sql, conn);            da.Fill(ds, "");
            conn.Close();
            return ds;
        }
我在da.Fill(ds,"");中的字符串应该输入什么?我给area、city、province数据源,都提示是无效字符,给空字符串就报'Fill: 应当为 SourceTable 名称输入一个非空字符串。'错误。。

解决方案 »

  1.   

    da.Fill(ds)这样的话就按下标来找表,ds.Tables[0]代表第一个表
      

  2.   


    da.Fill(ds);这样也不行啊。也是报无效字符的错误
      

  3.   


    竟然无法找到表。
    我之前写过一个例子是这样:
     public DataSet GetDs()
            {
                DataSet ds = new DataSet();
                string sql = "select * from ADDRESSTOMAILINGDEP";
                string connStr ="";
                OracleConnection conn = new OracleConnection(connStr);
                conn.Open();
                OracleDataAdapter da = new OracleDataAdapter(sql, conn);
                da.Fill(ds, "ADDRESSTOMAILINGDEP");
                conn.Close();
                return ds;
            }这样是可以的。  但是帖子的这个数据源是连接查询,不知道应该输入什么。
      

  4.   

    呵呵,找到原因了。 把sql语句中最后的分号去掉就可以了  郁闷!