读书人

Oracle和C#数据类型有关问题

发布时间: 2013-09-28 10:01:20 作者: rapoo

Oracle和C#数据类型问题
表结构


CREATE TABLE "HY-WYH"."TEST_TABLE"
("ID" NUMBER(*,0),
"NAME" VARCHAR2(4000 CHAR)
)

修改代码

OracleConnection conn = new OracleConnection(GetConnectString());
OracleCommand cmd = conn.CreateCommand();
conn.Open();
cmd.CommandType=System.Data.CommandType.Text;
cmd.Parameters.Add(new OracleParameter("ID",OracleDbType.Int64)); // ID应该选什么类型
cmd.Parameters.Add(new OracleParameter("NAME", OracleDbType.Varchar2));
cmd.Parameters["ID"].Value=ID;
cmd.Parameters["NAME"].Value=Name;
cmd.CommandText="UPDATE TEST_TABLE SET \"NAME\"=:NAME WHERE \"ID\" = :ID";
//执行时引发如下异常
//Oracle.DataAccess.Client.OracleException ORA-01722: invalid number
int res = cmd.ExecuteNonQuery();

oracle c# 数据类型 Number
[解决办法]
得到的id不是number型?
[解决办法]
引用:
OracleDbType中没有Number类型,只有Decimal,即使上面将ID参数代码改为Decimal类型,也不行。

Id有值吗,是不是空啊
[解决办法]
Int32就可以了,number默认8位

读书人网 >oracle

热点推荐