我现在要查询数据,语句是 SELECT * FROM 表 WHERE 列名 IN (范围)前台传进来一条字符串"123,1222,333"怎么将这字符串放到IN的条件里面?效果:SELECT * FROM 表 WHERE 列名 IN('123','1222','33')

解决方案 »

  1.   


    //方法有很多 正则也可以
    void Main()
    {
    string str="123,1222,333";
    string result="";
    foreach(string s in str.Split(','))
    {
      result+="'"+s+"',";
    }
    Console.WriteLine(result.Trim(','));
     //'123','1222','333'
    }
      

  2.   

    截取字符串。split(‘,’)
    把你的字符串截取了。
      

  3.   


    sql语句where 列名 IN (RESULT) 可以么?
      

  4.   

    string str = "123,1222,333";                string[] strdd = str.Split(',');
                    string sql = "SELECT * FROM 表 WHERE 列名 IN('" + strdd[0] + "','" + strdd[1] + "','" + strdd[2] + "')";
      

  5.   


    //linq也是可以的
    void Main()
    {
    string str="123,1222,333";
        str=string.Join(",",str.Split(',').Select(s=>"'"+s+"'").ToArray());
    Console.WriteLine(str);
     //'123','1222','333'
    }
      

  6.   

    将123,1222,333 格式成'123','1222','33'不就行了//格式化字符串 inStr 前台传过来的字符串
     string inStrFormat=string.Format("'{0}'",inStr).Replace(",","','"); 
    //拼接SQL 语句
    string sqlCommand = string.Format("SELECT * FROM 表 WHERE 列名 IN({0})", inStrFormat); 
      

  7.   

    linq什么的都成
    where id in(1,2,3,4,.....)
      

  8.   


    void Main()
    {
    string str="123,1222,333";
        str=string.Join(",",str.Split(',').Select(s=>"'"+s+"'").ToArray());
    string sql=string.Format("SELECT * FROM 表 WHERE 列名 IN ({0})",str);
    Console.WriteLine(sql);
     //SELECT * FROM 表 WHERE 列名 IN ('123','1222','333')
    }
      

  9.   

    忘记说了,这是在Oracle里面处理的,列中数据的格式是 123,222,333,444我有个函数,传进这个列的值得到中文信息,这个列要处理成 IN()能识别的格式CREATE OR REPLACE FUNCTION DS_IE.GETTRADE(TRADE IN VARCHAR2)          --根据贸易方式数字获取贸易方式名称
    RETURN VARCHAR2
    IS TRADESTRING VARCHAR2(400);
           BEGIN
             SELECT DS_IE.CONSTR(ABBR_TRADE) INTO TRADESTRING FROM DS_IE.BDTRADE WHERE TRADE_MODE IN (TRADE);
             RETURN TRADESTRING;
           END;
           
      

  10.   

    String str = "1001,1002,1003";
    str = String.Join("','",str.Split(new char[]{','},StringSplitOptions.RemoveEmptyEntries));
    str = "'" + str + "'";
      

  11.   

    sql
    command.CommandText = "delete test where CharIndex( ',' + Cast(fieldname As Varchar) + ',', ',' + @param + ',') > 0";
    SqlParameter param = new SqlParameter();   
    param.ParameterName = "@param";   
    param.Value = "1,2,3,4,5";
    command.Parameters.Add(param);  
      

  12.   


    这一列如果是Varchar的话,考虑用 instr(TRADE, 列名)>0 的Sql语句更好,
    至于中文信息的是编码转换的事。保证client端,server端编码都是 utf-8。
      

  13.   

    是varchar类型,instr要放在哪里?sql语句能不能写下?谢谢。
      

  14.   

    SELECT DS_IE.CONSTR(ABBR_TRADE) INTO TRADESTRING FROM DS_IE.BDTRADE WHERE INSTR(TRADE, TRADE_MODE) > 0