2012-04-25 32 views
-1

試圖返回使用OracleDataReader數據,讓對象引用不設置到對象的實例 - OracleDataReader

"Object reference not set to an instance of an object " at the line "odr = 
ocmd.ExecuteReader();", 

任何人都可以提出什麼我缺少/做錯了?

感謝

牛逼

  OracleConnection cn = null; 
      OracleDataReader odr = null; 
      OracleCommand ocmd = null; 

      String con1 = System.Configuration.ConfigurationManager.ConnectionStrings["HousingDBConnectionString"].ConnectionString; 
      cn = new OracleConnection(con1); 
      cn.Open(); 

      string mysql = "SELECT stuff from tables"; 
      OracleCommand cmd = new OracleCommand(mysql, cn); 
      odr = ocmd.ExecuteReader(); 
      Label2.Text = "connection success"; 

      ListBox1.Items.Clear(); 
      while (odr.Read()) 
      { 
       ListBox1.Items.Add(odr["TCY_CORRESPOND_NAME"].ToString()); 
      } 

回答

2

您將ocmd聲明爲null,但隨後您又創建了另一個OracleCommand對象作爲cmd。 ocmd從未實例化。

這部分是錯誤的:

OracleCommand cmd = new OracleCommand(mysql, cn); 
odr = ocmd.ExecuteReader(); 

它應該是:

OracleCommand cmd = new OracleCommand(mysql, cn); 
odr = cmd.ExecuteReader(); 
2

ocmdcmd是兩個不同的變量。

+0

切正貼的危險!謝謝你們,甚至沒有注意到這一點 – DarkW1nter 2012-04-25 13:43:53

1
OracleCommand cmd = new OracleCommand(mysql, cn); 

應該

OracleCommand ocmd = new OracleCommand(mysql, cn); 
相關問題