我试图从oracal数据库中获取数据,其中一个表的列是NUMBER(4,0)。如何从c#...
中的数据库中获取此数据类型这是我试图编译的示例代码
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:指定的强制转换无效。
任何能帮助我的人???谢谢
答案 0 :(得分:5)
首先,您应该正确键入列表。而不是ArrayList
,请使用List<decimal>
。
Oracle number
表示为C#中的decimal
,因此请使用:
dr.GetDecimal(0)
根据返回的数据的比例和精度,您可能需要(不是在这种情况下)dr.GetOracleNumber
并自己提取值。