2015-10-15 66 views
2

我已經在ASP.NET中編寫代碼以從Oracle數據庫獲取數據。代碼從本地託管的Oracle數據庫返回數據,但是當我指向遠程OracleDB時,什麼都沒有發生。但是,如果我使用SQL Developer Tool在遠程數據庫上運行相同的查詢,那麼它工作正常。 我已經調試了正確的SQL語句的代碼,它是絕對正確的。oracleDatareader.ExecuteReader()不返回任何數據

以下是我的代碼片斷

using (Oracle.DataAccess.Client.OracleConnection con = new 
Oracle.DataAccess.Client.OracleConnection()) 
     { 
       con.ConnectionString = ConfigurationManager.ConnectionStrings["ca_eFormsVSED"].ConnectionString; 
       con.Open(); 

       // query for fetch username and market 
       String sql = "a valid query" 

       Oracle.DataAccess.Client.OracleCommand cmd = new Oracle.DataAccess.Client.OracleCommand(sql, con); 
       cmd.CommandType = CommandType.Text; 
       if (con.State == ConnectionState.Open) 
       { 
        Oracle.DataAccess.Client.OracleDataReader dr = cmd.ExecuteReader(); 
       } 
       if (dr.Read()) 
       { 
        //Do Something 
       } 
     } 

請建議如何使其發揮作用。

+0

機器和遠程數據庫之間必須存在某些連接問題。 – Andrei

+0

你省略了太多。我想你正在使用參數,顯示他們和查詢。而且,這根本不會編譯,因爲你在'if'中創建'OracleDataReader'並在外部使用它。如果您沒有顯示導致此問題的代碼,我們無法幫助您解決問題。 –

+0

'if(嘗試ping你的遠程服務器&&檢查你的tnsnames.ora文件&&檢查conncetionstring &&檢查查詢){//程序必須執行}' – shreesha

回答

3

我得到了這個問題的解決方案,它可能會幫助別人。如果您100%確定代碼正確,並且當前的SQL語句從數據庫返回數據,請仔細檢查您的數據庫表是否具有依賴性。刪除現有的表格並重新導入新的數據,它對我來說工作正常。