无忧脚本 » .Net 相关技术讨论版 » SqlDataAdapter为什么不能使用in查询呢.

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);

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.