首页
视频
资源
登录
青草幽幽
这世间真的有很美的爱情,也有很温柔善良的女孩纸。
博主信息
排名
6
文章
6
粉丝
16
评论
8
文章类别
.net core
2篇
前端
15篇
.net
11篇
随笔
9篇
后端
1篇
python
7篇
移动开发
2篇
最新文章
最新评价
{{item.articleTitle}}
{{item.blogName}}
:
{{item.content}}
关于我们
ICP备案 :
渝ICP备18016597号-1
网站信息:
2018-2024
TNBLOG.NET
技术交流:
群号656732739
联系我们:
contact@tnblog.net
欢迎加群
欢迎加群交流技术
原
c# sql参数化 如何使用in
8205
人阅读
2020/10/22 11:30
总访问:
208006
评论:
0
收藏:
0
手机
分类:
.net
直接使用in是不可以的,in使用参数时会强制转换参数类型与条件字段一致,不支持构造字符串(如果字段本身为varchar、char型,则in相当于只有一个条件值,而不是一组) 你可以使用exec,把整个sql当做参数来执行,如 exec( 'SELECT * FROM table WHERE id IN ( '+@ids+ ') ') 大但是感觉这样是拼接的参数对sql诸如需要考虑一下安全性。 参考代码如下: ``` string sql = "exec('select * from bid where id in ('+@IDS+')')"; System.Data.SqlClient.SqlParameter[] sp = new System.Data.SqlClient.SqlParameter[] { new System.Data.SqlClient.SqlParameter("@IDS","1,2,3,4,5,6,7") }; System.Data.DataTable dt = SqlServerHelper.GetDataSet(sql, "PT", sp).Tables[0]; ``` 在数据库中执行: ``` --查询的值列表 DECLARE @idlist varchar(100) SET @idlist='1,2,3' --拼接并执行动态Transact-SQL语句 EXEC('SELECT * FROM tbname WHERE fdname IN('+@idlist+')') GO --要查询的字段类型是字符型 --查询的值列表已经加上了字符串边界符 DECLARE @idlist varchar(100) SET @idlist='''a'',''b''''a'',''c''' --拼接并执行动态Transact-SQL语句 EXEC('SELECT * FROM tbname WHERE fdname IN('+@idlist+')') GO ```
👈{{preArticle.title}}
👉{{nextArticle.title}}
评价
{{titleitem}}
{{titleitem}}
{{item.content}}
{{titleitem}}
{{titleitem}}
{{item.content}}