读书人

关于插入数据库的操作解决思路

发布时间: 2012-04-28 11:49:53 作者: rapoo

关于插入数据库的操作

C# code
public static int ExecuteNonQuery(string cmdText, params OdbcParameter[] cmdParams){    try    {        using (OdbcConnection conn = new OdbcConnection(_connectionString))         {            if (conn.State != ConnectionState.Open)                conn.Open();                    OdbcCommand cmd = new OdbcCommand(cmdText, conn);            cmd.CommandType = CommandType.Text;            foreach (OdbcParameter parm in cmdParams)            {                cmd.Parameters.Add(parm);            }            int val = cmd.ExecuteNonQuery();            cmd.Parameters.Clear();            return val;        }    }    catch (OdbcException e)    {        throw new Exception(e.Message);    }}

小弟用上面的方法往oracle数据库插入记录的数据,出现下面的错误:
"ERROR [42000] [Microsoft][ODBC driver for Oracle][Oracle]ORA-00936: 缺少表达式"
cmdText="insert into INTERVEN_REASON(ID,REASON) values (@ID,@REASON)"
参数的赋值和类型都没有问题,怎么会出现这样的问题呢,请各位大哥帮帮小弟,期待...

[解决办法]
这个ID是自加的吧?
[解决办法]
cmdText="insert into INTERVEN_REASON(ID,REASON) values (@ID,@REASON)"
如果是oracle数据库的话,后面的parameters参数不能用“@”,应该用“:”
不知道你的是不是这个问题。
[解决办法]
跟踪看下输出的SQL语句是否正确。
[解决办法]
oracle 数据库的parameters参数不能是@,识别不了。
[解决办法]
恩,你往Oracle数据库中插入数据的话,你应该使用OracleClient命名空间下的OracleConnection、OracleCommand对象的。
[解决办法]
OdbcConnection?.net 2.0开始就提供的OracleConnection哪儿去了?
[解决办法]
用ExecuteScalar试试。
[解决办法]
Oracle的参数的确是“:”,不是“@”。
并非所有变量都已关联,可能是你传过来的参数cmdParams有问题,可能不是ID,REASON这两个,你跟断点看看传过来的cmdParams是什么东西。参数名药对应上。
[解决办法]
Oracle的参数的确是“:”,不是“@”。

[解决办法]
mark
[解决办法]
是不是参数为值为空?

读书人网 >C#

热点推荐