string strempid2="1000,10001,10002,10003"
string sql="select email from employee where emp_id in (" & strempid2 & " ) "emp_id 是int类型
strempid2是string,执行SQL时  会提示类型转换为int错误

解决方案 »

  1.   

    sql输出是什么?
    select email from employee where emp_id in (1000,10001,10002,10003)的话应该不会错
      

  2.   

    string strempid2="1000,10001,10002,10003"
    string sql="select email from employee where rtrim(emp_id) in (" & strempid2 & " ) "
      

  3.   

    string strempid2="1000,10001,10002,10003"
    string sql="select email from employee where cast(emp_id as varchar) in (" & strempid2 & " ) "
      

  4.   

     
    將 varchar 值 '11800z01' 轉換成資料類型 int 時,轉換失敗。string strempid2="1000,10001,10002,10003"
    string sql="select email from employee where emp_id in (" & strempid2 & " ) "emp_id里有 11800z01之类的id
    但我的语句并没有将什么转为int啊
      

  5.   

    楼上的,那是因为emp_id 是int 型,而后面的不是INT型。
    所以提示
      

  6.   


    string strempid2="1000,10001,10002,10003"
    string sql="select email from employee 
    where CHARINDEX(','+CONVERT(VARCHAR,emp_id)+',',','+strempid2 +','>0
      

  7.   

    看错了。抱歉。
    因为楼主后面传入的参数是INT ,而emp_ID型不是INT,所以报错。
     
    这样写应该可以了.
    string strempid2="1000,10001,10002,10003";
    strempid2 = "'" +  strempid2.Replace(",","','" ) + ",";
    string sql="select email from employee where emp_id in ( " & strempid2 & " ) "