priductId="1,2,3,4,4,5,6";
        public int Delete(string ProductId)
        {
            //cmdText = "delete from Product where ProductId in (" + ProductId + ")";
            //res = sqlhelper.ExecuteNonQuery(cmdText, CommandType.Text);
            //return res;            string TempString = "("+ProductId+")";
            cmdText = "delete from Product where ProductId in @TempString";
            SqlParameter[] paras = new SqlParameter[] { 
            new SqlParameter("@TempString",TempString)
            };
            res = sqlhelper.ExecuteNonQuery(cmdText, CommandType.Text);
            return res;
        }
我怎样搞也搞不出来,请高人指点一下

解决方案 »

  1.   

    cmdText.Parameters.Add(new SqlParameter(@TempString",TempString));
      

  2.   

    TempString 这个东西 初始化要做的犀利一点
      

  3.   

    感觉sqlparameter 的都是要数据库类型的吧
      

  4.   

    查询参数要加到SqlCommand对象的Parameters集合中去
      

  5.   

    "("+TempString+")"in (@paramname)
    SqlParameter param = new SqlParameter(); 
    param.ParameterName = "@paramname"; 
    param.Value = "";
      

  6.   

    可以分2部份处理,
    1. 首先,在MSSQL数据库服务器上创建一个自定义的函数.
    2. 在C#的Query中使用这个函数.CREATE   FUNCTION   [dbo].[f_split](@c   varchar(2000),@split   varchar(2))  
      returns   @t   TABLE(col   varchar(20))  
      AS  
        begin  
          while(charindex(@split,@c)<>0)  
            begin  
              INSERT   @t(col)   VALUES   (substring(@c,1,charindex(@split,@c)-1))  
              SET   @c   =   stuff(@c,1,charindex(@split,@c),'')  
            end  
          INSERT   @t(col)   VALUES   (@c)  
          RETURN  
        end  
    GO
    string TempString = "("+ProductId+")";cmdText = "delete from Product where ProductId in (select * from dbo.f_split(@TempString,’,'))";SqlParameter[] paras = new SqlParameter[] { 
    new SqlParameter("@TempString",TempString)
    };
      

  7.   

    有点问题,补充一下.
    这个一句, string TempString = "("+ProductId+")";
    不用拼接,直接使用 string TempString = "1,2,3,4,4,5,6"; 即可.
      

  8.   

    in 参数
    string strSql = "exec(’select * from Person.Address where AddressID in (’+@add+’)’)";
    SqlParameter[] Parameters = new SqlParameter[1];
    Parameters[0] = new SqlParameter("@add", "343,372,11481,11533,11535,11755,11884,12092,12093,12143");