- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
从 C# LinQ 到 sql 数据上下文,使用 IN
运行自定义 sql
语句的最佳方法是什么?我试过:
db.ExecuteCommand(
"UPDATE tblCard SET used = 1 WHERE id IN ({0}) AND customer_id = {1}",
Request.Form["ids"], customer_id
);
这对于通过表单传递的 1 个项目来说没问题,但是如果我通过例如“2,1”发布,那么我会得到一个 sqlclient
异常:
Conversion failed when converting the nvarchar value '2,1' to data type int.
如果我改为使用 string.format 来插入参数,它工作正常,但显然这对 sql 注入(inject)是开放的。
最佳答案
LINQ-to-SQL 不使用连接;这将是以下形式的 TSQL 查询:
WHERE id IN (@p0)
@p0
设置为 '123,456,789'
。
对于常规 LINQ,您可以使用 Contains
。使用 ExecuteQuery
有几个选项;例如,您可以“按原样”传入 CSV,并使用 UDF 在数据库中拆分它,然后加入它:
UPDATE c SET c.used = 1
FROM dbo.SplitCsv({0}) udf
INNER JOIN tblCard c
ON c.Id = udf.Value
AND c.Customer_ID = {1}
dbo.SplitCsv
是 Internet 上可用的许多此类“拆分”udf 之一。
关于c# - IN 语句中的 Datacontext ExecuteCommand 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/781839/
我正在使用服务 Controller 的 executecommand 函数,如下所示: ServiceController serviceController = new S
给定: var linuxCommmand = "/opt/ndmcli -x"; var linuxOptions = "sel stat pnum=157 detail=yes;\nquit;";
在一个c#项目中,我调用了一个存储过程如下: System.Data.Linq.DataContext dataContext = MembershipContext.GetContext(conne
我想使用宏来发布我的网络应用程序项目。小问题是,DTE.ExecuteCommand 异步运行,我需要等到命令完成。 例子: DTE.Windows.Item(Constants.vsWind
我在使用 linq 将空值传递给 ExecuteCommand() 方法时遇到问题。我的代码类似于以下代码: public void InsertCostumer(string name, i
我正在编写一个 VS Code 扩展来帮助迁移 React.createClass 至类扩展 React.Component .这里的问题是,我无法获得 vscode.commands.execute
我想在我的数据库上执行语句: /*Disable Constraints & Triggers*/ exec sp_MSforeachtable 'ALTER TABLE ? NOCHECK CONS
我对这个有点困惑,希望有人能澄清这是怎么回事。 我想使用我的 LINQ-to-SQL 数据上下文以编程方式禁用外键约束。看起来这应该像下面这样简单: context.ExecuteCommand( "
从 C# LinQ 到 sql 数据上下文,使用 IN 运行自定义 sql 语句的最佳方法是什么?我试过: db.ExecuteCommand( "UPDATE tblCard SET used
我有一个包含多个启动项目的解决方案,我正在尝试每晚自动重新启动其中一个项目,同时将新进程附加到同一个调试器。 我能够重新启动该进程(使用 Process.Start)并将当前的调试器附加到它,但到目前
使用VS2010 感谢汉斯(因为我要低调地回答我自己的问题8个小时) Sub CreateBreakPoint() Dim doc As TextDocument = _
我正在使用 Angular 7 构建一个 web 应用程序,我尝试实现搜索功能,如 https://mozilla.github.io/pdf.js/web/viewer.html . 我有它的工作,
我目前正在阅读一些使用 LinqToSQL 中的 DataContect.ExecuteCommand 的代码。 我主要关心的是此 ExecuteCommand 的更改何时发生在数据库上。是在我调用
所以我有以下代码: var transactionScopeOptions = new TransactionOptions() { IsolationLevel = IsolationLevel.R
假设我有一个名为 Department 的实体,它是从 MyDataContext 中检索到的。部门有一个协会叫做雇员。 我想向部门添加一堆新员工。我没有使用会导致多个查询的 LINQ,而是使用以下命
我在 Linq 工作现在我想知道从以下运行 sql 查询哪个更好。 1) 执行查询 2) 执行命令 最佳答案 ExecuteQuery 和 ExecuteCommand 方法都是 LINQ DataC
有一个我一直用来远程控制数码相机的旧程序,以便自动拍摄照片并将它们传输到 PC。程序基于 WIA,据我所知,它最初是在 Windows XP 上设计和使用的。 最近将其从文件中取出,并一直在尝试使用同
我在我的网站中添加了一个鼠标右键上下文菜单,其中包含功能(剪切、复制、粘贴)。我使用了 document.executeCommand()。剪切和复制可以工作。但粘贴在 chrome 中不起作用(它在
我有一个 ASP.NET MVC 应用程序,我正在使用 LinqToSql 进行数据库访问。 我想从 SQL 脚本创建一个数据库到我的 DBMS (SQL Server Express)。 当我在没有
(...) Session sess = new Session(); sess.Open(sessionParams); (...) sess.ExecuteCommand('/home/kit/c
我是一名优秀的程序员,十分优秀!