【发布时间】:2010-10-21 09:03:07
【问题描述】:
使用IN 从 C# LinQ 到 sql 数据上下文运行自定义 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 异常:
将 nvarchar 值 '2,1' 转换为数据类型 int 时转换失败。
如果我改为使用 string.format 插入参数,它可以正常工作,但显然这对 sql 注入是开放的。
【问题讨论】:
标签: c# linq command datacontext execute