SqlParameter 如何进行in查询?
一般来讲
     select * from tablename where fieldname = @paramname
     然后给SqlCommand增加一个SqlParameter说明你要查询的值
对于IN 查询怎么办呢?
我写了如下语句
      command.CommandText = "select * from tablename where fieldname in (@paramname)"
     SqlParameter param = new SqlParameter();
     param.ParameterName = "@paramname";
     param.Value = new object[]{1,2,3,4,5};
     command.Parameters.Add(param);
执行过程中出现以下异常:不存在从对象类型 System.Object[] 到已知的托管提供程序本机类型的映射。
请问,我如何用SqlParameter来执行一个In 查询?
------解决方案--------------------觉得用in没必要用SqlParameter...
直接生成字符串嵌进去不是更好吗???
------解决方案--------------------CharIndex
Select * From tablenname where CharIndex(',' + Cast(field_value As Varchar) + ',', ',' + @param + ',') > 0
------解决方案--------------------command.CommandText = "select * from tablename where  CharIndex( ',' + Cast(fieldname As Varchar) +  ',',  ',' + @param +  ',')  > 0";
SqlParameter param = new SqlParameter();  
param.ParameterName = "@paramname";  
param.Value = "1,2,3,4,5";
command.Parameters.Add(param);
------解决方案--------------------SqlParameter就是申明sql变量然后附值,你在sql proc里面怎么写就在.net里面怎么写
------解决方案--------------------从实例中摘一段代码出来。
   SqlTemplate rolesTemplate = SqlTemplate.CreateTemplateExpression( "{...}", Array.ConvertAll<string, object>( roles, delegate( string input ) { return input; } ) );
   string [] rights = SqlDataProvider.DbUtility.ExecuteSingleColumn<string>( @"SELECT Rights FROM Roles WHERE role IN ( {0} )", rolesTemplate );
DbUtility的源代码在我的Blog就有得下载。