我不熟悉将 ORACLE 与 Entity Framework 5 一起使用。尝试一个简单的更新语句,但它不起作用,我收到错误“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 创建表脚本。
有什么想法吗?谢谢
最佳答案
你试过吗?没有冒号
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));
关于c# - ORA-00936 : missing expression using Entity framework update statement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28045519/