Entity FrameWork Oracle SQL参数问题
2015-10-09 08:08
253 查看
Entity FrameWork Oracle SQL参数问题
作为一名码了若干代码的程序媛第一次在博客上记录自己遇到的问题,,惭愧啊。。。。。。不过有开始总是好的(纯属自我心理安慰)。问题描述:
使用EF 4.0 执行Oracle SQL传参数的时,总是提示:ORA-1008:并非所有变量都已绑定;
代码如下:
public int SqlQuery(int? yearly, int? monthly) { string sql=@"SELECT COUNT(*) FROM WHERE (M.YEARLY=:YEARLY or :YEARLY is null) AND (M.MONTHLY=:MONTHLY or :MONTHLY is null)"; //参数赋值 DbParameter[] param ={ new OracleParameter { ParameterName = "YEARLY", Value = yearly??(object)DBNull.Value }, new OracleParameter { ParameterName = "MONTHLY", Value = monthly??(object)DBNull.Value }}; int count = this.Context.Database.SqlQuery(typeof(int), sql, param).Cast<int>().FirstOrDefault(); return count; }
解决办法:
修改参数设置相关代码,将param 改为以下:
DbParameter[] param ={ new OracleParameter { ParameterName = "YEARLY", Value = yearly??(object)DBNull.Value }, new OracleParameter { ParameterName = "YEARLY", Value = yearly??(object)DBNull.Value }, new OracleParameter { ParameterName = "MONTHLY", Value = monthly??(object)DBNull.Value}, new OracleParameter { ParameterName = "MONTHLY", Value = monthly??(object)DBNull.Value } };
问题解决。
总结:因为是第一次用EF框架调用Oralce,并使用SQL传参数,忽略了EF SqlQuery方法的设置参数问题;SQL语句中虽然同时用了两个相同的参数,但是SQLQuery在为参数赋值的时候认为他们是四个不同的参数,所以就出现了“并非所有变量都已绑定“异常;(不知道写明白了没)
以上内容纯属个人记录,同时也希望能帮到遇到类似问题的码农们。
相关文章推荐
- oracle手注
- 深入浅析Oracle数据库管理之创建和删除数据库
- Oracle Scott创建视图权限不足解决办法
- Windows环境下在Oracle VM VirtualBOX下克隆虚拟机镜像(克隆和导入)
- oracle索引<转>
- Oracle数据文件管理
- Oracle-卸载
- Oracle-简介
- Oracle-oracleSQL对单表各种查询操作及函数的使用
- 在oracle数据库里创建自增ID字段的步骤
- Oracle数据库报ORA-01078和LRM-00109错误解决方法
- 谈谈oracle中的临时表
- Oracle-在线重定义操作文档
- Oracle 12.1.0.1 RAC + DG搭建
- oracle所有用户都被锁定之后解决办法
- Oracle express启用scott用户
- oracle listener 服务启动后关闭
- oracle的乐观锁和悲观锁
- oracle储存过程,job,视图,触发器(记性不好,写个例子自己记)
- Oracle 过程中的select into 中查询记录数不是1导致异常的解决办法