我在一个视图中查询到数据后,想填充到数据集,但是运行后提示视图无效,是不是因为查询数据的对象是视图是不可以进行数据集填充的呢?表的话就是可以的?
SqlDataAdapter da1 = new SqlDataAdapter(sql1, mycon);
DataSet ds1 = new DataSet();
da1.Fill(ds1, "v_hr_ats_employee");那如果视图不行的话,我要使用到2个表,那查询到的数据如何进行填充数据集呢?
比如sql = "select a.id,a.name,b.gh from table1 a,table2 b where a.id = b.id";这样的话填充数据集的代码在吗写呢?

解决方案 »

  1.   


    string sql1 = "select a.id,a.name,b.gh from table1 a,table2 b where a.id = b.id"; 
    SqlDataAdapter da1 = new SqlDataAdapter(sql1, mycon); 
    DataSet ds1 = new DataSet(); 
    da1.Fill(ds1); 
      

  2.   

    一样的,da1.Fill(ds1, "v_hr_ats_employee");  v_hr_ats_employee可以随便取。
      

  3.   

    视图可以啊 string sql1="select * from 你的视图名字";
    SqlDataAdapter da1 = new SqlDataAdapter(sql1, mycon); 
    DataSet ds1 = new DataSet(); 
    da1.Fill(ds1, "v_hr_ats_employee"); 这样就可以啦 
      

  4.   


            SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["conStr"]);
            conn.Open();
            SqlDataAdapter dbAdapter = new SqlDataAdapter(sql语句或存储过程或试图, conn);
            DataSet ds = new DataSet();
            dbAdapter.Fill(ds, "表名");
      

  5.   

    如果:da1.Fill(ds1, "v_hr_ats_employee"); 中的"v_hr_ats_employee"是你的视图名称 那么就把这句去掉就ok了 
      

  6.   

    我就是那样的啊,但是运行后就是在da1.Fill(ds1, "v_hr_ats_employee"); 这行出错了,说是v_hr_ats_employee无效
      

  7.   

    去掉了,居然还是提示同样的错误,这是什么原因呢?sql语句我查询过的,正确的
      

  8.   

    SqlDataAdapter.Fill(DataSet,tablename);
    tablename是你的DataSet中的Table的名称吧....
      

  9.   

                SqlDataAdapter da1 = new SqlDataAdapter("select * from Oil", "Data Source=192.168.1.120,11433;Initial Catalog=NERP_VTS;Persist Security Info=True;User ID=sa;PassWord=asiatek;");
                DataSet ds1 = new DataSet();
                da1.Fill(ds1, "v_hr_ats_employee");
    我这样运行了,没错;v_hr_ats_employee是ds1中的一个表的名字
      

  10.   

    sql查询了是有数据的,但是到了填充部分,出现“对象名  'v_HR_ATS_Employee' 无效。”究竟是什么原因啊!55555555
      

  11.   

    是不是你输的'v_HR_ATS_Employee' 是全角字符啊
      

  12.   

      你先用别的表试试。。看看是不是你的表有错误啊
        'v_HR_ATS_Employee' 换成数据库别的表。。对应的SQL语句也要改
      

  13.   

            public DataSet GetDateSet(string strSql)
            {
                OracleConnection myConn = GetOracleConnection();
              
                OracleDataAdapter adap = new OracleDataAdapter(strSql, myConn);
                try
                {
                    DataSet myDS = new DataSet();
                    adap.Fill(myDS);                return myDS;
                }
                catch (Exception ex)
                {
                    string error = ex.Message;
                    return null;
                }
                finally
                {
                    myConn.Close();
                    adap.Dispose();
                }
            }
            #endregion直接调用这个就是咯.