【发布时间】:2015-05-16 23:55:56
【问题描述】:
我在 C# 中使用 Visual Studio 2013。我正在尝试使用SqlCommand 插入类似于存储过程的数据。如果我用真实数据而不是变量替换值,则下面的代码可以工作,但是当我尝试使用变量时,我得到了这个错误:
EntityFramework.SqlServer.dll 中出现“System.Data.SqlClient.SqlException”类型的未处理异常
附加信息:必须声明标量变量“@cashmemo”。
这是我的代码:
dbContext.Database.ExecuteSqlCommand("INSERT INTO CashAccounts(CashDate,CashMemo,CashDebit,CashCredit)VALUES(Getdate(),@cashmemo,@cashcredit,@cashdebit)");
SqlCommand sqlCom = new SqlCommand();
sqlCom.Parameters.Add("@cashmemo", SqlDbType.NVarChar);
sqlCom.Parameters.Add("@cashcredit", SqlDbType.Decimal);
sqlCom.Parameters.Add("@cashdebit", SqlDbType.Decimal);
sqlCom.ExecuteNonQuery();
【问题讨论】:
-
查看:[如何将 DbContext.Database.SqlQuery
(sql, params) 与存储过程一起使用? EF 代码优先 CTP5][1] [1]:stackoverflow.com/questions/4873607/… -
查看:[如何将 DbContext.Database.SqlQuery
(sql, params) 与存储过程一起使用? EF 代码优先 CTP5][1] [1]:stackoverflow.com/questions/4873607/… -
您未设置您的
CommandText属性SqlCommand- 将其设置为SQL 查询字符串。另外:如果您使用的是 EF - 为什么要诉诸“原始” ADO.NETSqlCommand处理? -
EF 不适合在同一个事务中创建多个对数据库的插入,但它适用于其他普通类
标签: c# sql-server entity-framework