2015-03-21 2 views
1

Я пытался извлечь данные из базы данных oracal, один из столбцов таблицы - NUMBER (4,0). Как я могу извлечь этот тип данных из базы данных в C# ...получить номера из OracleDataReader

это пример кода, который я пытался скомпилировать

ArrayList ListofSaleno = new ArrayList(); 
      OleDbConnection con = new OleDbConnection(); 
      con.ConnectionString = "Provider=MSDAORA;Data Source=orcl;Persist Security Info=True;User ID=thara;password=12"; 
      con.Open(); 
      OleDbCommand cmd = new OleDbCommand("select saleno from transaction_file_com01 where selrcd ='"+userID+"'", con); 
      OleDbDataReader dr = cmd.ExecuteReader(); 

      if (dr.HasRows) 
      { 
       while (dr.Read()) 
       { 
        ListofSaleno.Add(dr.GetInt32(o));//Error line 
       } 
      } 
      dr.Close(); 
      con.Dispose(); 
      return (ListofSaleno); 

но выдает ошибку .. System.InvalidCastException Указанной бросание не действует.

любой, кто может мне помочь ??? спасибо

ответ

3

Во-первых, вы должны правильно ввести свой список. Вместо ArrayList используйте List<decimal>.

оракул number представлен как в decimal в C#, так что используйте:

dr.GetDecimal(0) 

В зависимости от масштаба и точности данных, возвращаемые вам может понадобиться (не в данном случае) dr.GetOracleNumber и извлечь значение сам.

+0

спасибо .... :) он работает сейчас мне нужно вывести дату ... это нормально C# Дата Obj ...... – gamal

+0

Если вы используете 'GetDateTime', это так. –

Смежные вопросы