public DataTable Select(string sql, params object[] args)
        {
            IList<SqlParameter> parameters =
                        (args == null ? null : this.PopulateParametersWithSql(sql, args));//参数化处理            SqlCommand cmd = BuildCommand(sql, parameters);            ds = new DataSet();
            data = new SqlDataAdapter("", conn);
            data.SelectCommand = cmd;
            data.Fill(ds);
            return ds.Tables[0];
        }上面的方法中传入下面的列子 可以防止sql注入但 要怎么才能支持模糊查询呢?
string sql = "select Count(*) from MovieLst where [number] =@number";
                DataTable table = sqlmdb.Select(sql, row.Cells["NumberColumn"].Value);
求一个防止sql注入 但也支持模糊查询的类  要有调用示例或是提供更好的思路(该贴无论是否有答案都会结贴给分)

解决方案 »

  1.   

    SQL注入没那么神秘的~1.如果数字参数,判断参数内容必须是数字,否则报错~2.如果是字符型参数,过滤单引号为两个单引号~~.net的话,使用SQL参数传值就成了~只要懂得注入的原理,对传进来的参数进行一定的处理,就可以了~~过去NB小竹写过一个注入天书,看看~~http://blog.csdn.net/dengwei007/articles/30712.aspx
      

  2.   

    .net的话,使用SQL参数传值就成了~ 我就是用了上面那种,结果是模糊查询不支持
      

  3.   

    sql语句为 SELECT * FROM customers WHERE name LIKE @name;然后把%放入参数值中:new SqlParameter("@name", "%" + objValue + "%");