public DataTable GetMovieInfo()
    {
        sql = "select * from NETMOVIE";
        DataTable dt = dbo.GetDataTable(sql);
        return dt;
    }sql语句可以正常获得数据,但datatable里没有数据,什么原因啊?操作的是oracle数据库,是不是语法有问题啊 ?请指教,多谢~~

解决方案 »

  1.   

    dbo.GetDataTable这个方法的代码贴出来看看~
      

  2.   

    select * from dbo.NETMOVIE
      

  3.   

    首先应该判断你连接数据库是否成功了!如果成功,那你看看GetDataTable()这个方法里面是不是哪里写错了?
      

  4.   

     public DataTable GetDataTable(string argSqlString, object[] argVal)
        {
            OracleCommand sqlSelectCommand = new OracleCommand(argSqlString, dbConnection);
            sqlSelectCommand.CommandTimeout = 300;
            if (dbTrans != null)
                sqlSelectCommand.Transaction = dbTrans;
            sqlSelectCommand.Prepare();
            for (int i = 0; i < argVal.Length; i++)
            {
                sqlSelectCommand.Parameters.AddWithValue("@P" + i.ToString(), argVal[i]);
            }
            OracleDataAdapter sqlDataAdapter = new OracleDataAdapter(sqlSelectCommand);
            DataTable dataTable = new DataTable();
            sqlDataAdapter.Fill(dataTable);///填充数据集;
            return dataTable;
        }
      

  5.   

    是这个
      public DataTable GetDataTable(string argSqlString)
        {
            OracleCommand sqlSelectCommand = new OracleCommand(argSqlString, dbConnection);
            sqlSelectCommand.CommandTimeout = 300;
            if (dbTrans != null)
                sqlSelectCommand.Transaction = dbTrans;
            OracleDataAdapter sqlDataAdapter = new OracleDataAdapter(sqlSelectCommand);
            DataTable dataTable = new DataTable();
            sqlDataAdapter.Fill(dataTable);///通过数据适配器对象的fill方法填充数据集,且返回一个数据库表;
            return dataTable;
        }
      

  6.   

     public DataTable GetDataTable(string argSqlString) 
        { 
            OracleCommand sqlSelectCommand = new OracleCommand(argSqlString, dbConnection); 
            sqlSelectCommand.CommandTimeout = 300; 
            if (dbTrans != null) 
                sqlSelectCommand.Transaction = dbTrans; 
            OracleDataAdapter sqlDataAdapter = new OracleDataAdapter(sqlSelectCommand); 
            DataTable dataTable = new DataTable(); 
            sqlDataAdapter.Fill(dataTable);///通过数据适配器对象的fill方法填充数据集,且返回一个数据库表; 
            return dataTable; 
        }
    你先打断点看看连接数据库成功没有,红色字体那里断点,运行点开来看里面是否有数据,如果没的,肯定是连接数据库失败。感觉你是错在连接数据库了,我给你看看我连接oracle的代码:
                  DataTable dt = new DataTable();
                string connstr = "Provider=OraOLEDB.Oracle;DATA                SOURCE=LINCDB1.BSVMLINC01;PERSIST SECURITY INFO=True;USER ID=LINC2;Password=LINC2";
                OleDbConnection conn = new OleDbConnection(connstr);
                conn.Open();     
                string sql = "select * from ti_status";           
                OleDbDataAdapter myDA = new OleDbDataAdapter(sql, conn);
                myDA.Fill(dt); 
      

  7.   

    估计dbConnection连接有问题吧。下面代码上放断点看看,FILL之后table 有没有数据. sqlDataAdapter.Fill(dataTable);///通过数据适配器对象的fill方法填充数据集,且返回一个数据库表