.net sql where in 参数化
2009-08-10 11:19
357 查看
其实要执行的东西很简单就是一句.(ps,随手敲的,不排除手误)
select * from tb where id in(1,2,3,4)
那么就成了语句的构造问题了
in ()里面是个集合,而楼主的写法是 id in ('1,2,4,3') 是in一个字串. 当然取不到了.
string sql="select * from tb where id in(@ids)";
相当于
string sql="select * from tb wehre id in('1,2,3,4');
如果一定要这样以传参数方式,并且ids给字串,那么
C# code
SQL code
如果ids给字串,但不要求以传参数方式执行 那么
C# code
相当于执行
SQL code
如果一定要这样以传参数方式,且ids给字串,且不允许语句用exec来执行,那么
C# code
相当于执行
SQL code
select * from tb where id in(1,2,3,4)
那么就成了语句的构造问题了
in ()里面是个集合,而楼主的写法是 id in ('1,2,4,3') 是in一个字串. 当然取不到了.
string sql="select * from tb where id in(@ids)";
相当于
string sql="select * from tb wehre id in('1,2,3,4');
如果一定要这样以传参数方式,并且ids给字串,那么
C# code
string sql="exec('select * from tb where id in (' + @ids + ')')" SqlParameter[] Para1 = new SqlParameter[1]; Para1[0] = new SqlParameter("@id", SqlDbType.NVarChar,200); Para1[0].Value = idStr; return SqlHelper.ExecuteDataset(My_config.GetConnstr, CommandType.Text, sql, Para1);相当于执行
SQL code
exec('select * from tb where id in (' + '1,2,3,4' + ')')
如果ids给字串,但不要求以传参数方式执行 那么
C# code
string sql="select * from tb wehre id in (" + idStr + ")"; return SqlHelper.ExecuteDataset(My_config.GetConnstr, CommandType.Text, sql, null);
相当于执行
SQL code
select * from tb where id in(1,2,3,4)
如果一定要这样以传参数方式,且ids给字串,且不允许语句用exec来执行,那么
C# code
string sql="select * from tb where charindex(',' + rtrim(id) + ',' , ',' + @ids + ',')>0"; SqlParameter[] Para1 = new SqlParameter[1]; Para1[0] = new SqlParameter("@id", SqlDbType.NVarChar,200); Para1[0].Value = idStr; return SqlHelper.ExecuteDataset(My_config.GetConnstr, CommandType.Text, sql, Para1);
相当于执行
SQL code
select * from tb where charindex(','+rtrim(id)+',',','+'1,2,3,4'+',')>0当然,charindex方式可以改用like完成.写法略
相关文章推荐
- .net sql where in 参数化
- sql 语句 嵌套查询 (where,group by,having,in,some,all...)
- IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题
- ADO.NET Entity Framework: The version of SQL Server in use does not support datatype 'datetime2'
- SQLSTATE[42S22]: Column not found: 1054 Unknown column 'tbl_contact' in 'where clause'.
- Database Change Notifications in ASP.NET using SignalR and SqlDependency
- C# Sql参数化 in like
- asp.net/c#下用参数化SQL访问时间字段
- mysql/sqlserver where in 传参数的问题
- [CodeProject每日一荐] SqlWhereBuilder ASP.NET 服务器控件
- sql中,In和where的区别
- excute sql in .net
- How to use Oracle 11g ODP.NET UDT in an Oracle Stored Procedure's Where clause
- 警惕 MySql 更新 sql 的 WHERE 从句中的 IN() 子查询时出现的陷阱
- sql里的exists与in、not exists与not in的区别(转:http://blog.csdn.net/jkptthui/archive/2009/12/17/5024779.aspx)
- 正确的where in 语句参数化写法
- asp.net Parameters.AddWithValue方法在SQL语句的 Where 字句中的用法
- Using SqlDataReader’s new async methods in .Net 4.5 Beta
- How To: Use Forms Authentication with SQL Server in ASP.NET 2.0
- using sql server or sql azure for session state store in asp.net