【发布时间】:2016-09-08 04:28:45
【问题描述】:
我是在实体框架 5 中使用 ORACLE 的新手。尝试一个不起作用的简单更新语句,我收到错误“ORA-00936:缺少表达式”
Entities context = new Entities();
var Description="UpdateTesting";
var Id = "1";
string UpdateSqlString = @"Update SOURCE Set DESCRIPTION={0} where SOURCEID={1}";
int RowsUpdated = context.Database.ExecuteSqlCommand(UpdateSqlString, Description, Id);
context.SaveChanges();
我也尝试了以下方法,但仍然遇到同样的错误
Entities context = new Entities();
var Description = "UpdateTesting";
var Id = "1";
var sql = @"Update SOURCE Set DESCRIPTION = @DESCRIPTION WHERE SOURCEID = @Id";
int RowsUpdated = context.Database.ExecuteSqlCommand(sql, new OracleParameter("DESCRIPTION", Description),
new OracleParameter("Id", Id));
context.SaveChanges();
我现在尝试使用以下语法,但在 ExecuteSqlCommand 之后没有任何反应,并且应用程序可能进入了一些未结束的循环
var Description="UpdateTesting";
var SOURCEId = "1";
var sql = "Update SOURCE SET DESCRIPTION = :Description WHERE SOURCEID = :SOURCEId";
int RowsUpdated=context.Database.ExecuteSqlCommand(
sql,
new OracleParameter(":Description", Description),
new OracleParameter(":SOURCEId", SOURCEId));
如果这有助于解决这个问题,我可以提供 SQL 创建表脚本。
有什么想法吗?谢谢
【问题讨论】:
-
呃。试过了,但现在出现这个错误“无法将'System.Data.SqlClient.SqlParameter'类型的对象转换为'Oracle.DataAccess.Client.OracleParameter'。”
-
现在出现稍微不同的错误“无法将类型为 'System.Data.OracleClient.OracleParameter' 的对象转换为类型 'Oracle.DataAccess.Client.OracleParameter'”
-
现在尝试使用此命名空间“使用 Oracle.DataAccess.Client;”但现在回到原来的错误“ORA-00936:缺少表达式”
-
当然。请查看更新
标签: c# oracle entity-framework