2009-12-13 16:05
贪睡的猫
SqlDataAdapter为什么不能使用in查询呢.
string sqlStatement = "select * from users where userid IN (@userid)";
DataTable table = new DataTable();
SqlDataAdapter adapter = new SqlDataAdapter(sqlStatement, connectionString);
我如果设置一个能检索出来.(如下)
adapter.SelectCommand.Parameters.Add(new SqlParameter("@userid", "55"));
设置多人提示我没有数据.
adapter.SelectCommand.Parameters.Add(new SqlParameter("@userid", "55,66"));
下面也不行
adapter.SelectCommand.Parameters.Add(new SqlParameter("@userid", "'55','66'"));
不知道是什么原因,是不是不能用in 呀!
2010-8-9 11:01
crura
字段名,表名,数据库名之类作为变量时,必须用动态SQL
string connectionString = ConfigurationManager.ConnectionStrings["SQLConnString1"].ConnectionString;
string sqlStatement = "exec(' select * from roleinfo where roleid IN ('+@id+') ')";
DataTable table = new DataTable();
SqlConnection connection = new SqlConnection(connectionString);
SqlDataAdapter adapter = new SqlDataAdapter();
SqlParameter param = new SqlParameter();
param.ParameterName = "@id";
param.Value = "1,2";
param.DbType = DbType.String;
SqlCommand command = new SqlCommand(sqlStatement, connection);
command.CommandType = CommandType.Text;
command.Parameters.Add(param);
adapter.SelectCommand = command;
DataSet ds = new DataSet();
adapter.Fill(ds);