zoukankan      html  css  js  c++  java
  • sql 参数化查询问题

    一、正确案例

    string name=“梅”;

    string sql="select * from test where  Name  like @Name";

    //包含 梅
    SqlParameter par=new SqlParameter("@Name","%"+name+"%");

    // 以 梅 开头

    SqlParameter par=new SqlParameter("@Name", name+"%");

    // 以 梅 结尾

    SqlParameter par=new SqlParameter("@Name", "%"+name);

    二 错误案例  

    string name=“梅”;

    // 多加 单引号 ‘’ ,@Name 被识别为字符串而不是参数。

    string sql="select * from test where  Name  like  '@Name' ";

    SqlParameter par=new SqlParameter("@Name","%"+name+"%");

    //相同错误变种1

    string sql="select * from test where  Name  like  '%@Name%' ";

    SqlParameter par=new SqlParameter("@Name", name);

    //相同 错误变种2

    string sql="select * from test where  Name  like   ' %" + "@Name"+"%'  ";

    SqlParameter par=new SqlParameter("@Name", name);

    主要是对单引号的理解错误。 参数化查询中对字符串类型会自动处理,不需要手动添加单引号。

    三 一种可行,但没有用到参数化查询的方法

    // sql 简单拼接(存在sql注入攻击的风险)

    string name=“梅”;

    string sql="select * from test where  Name  like   ' %" + name+ "%'  ";

     四、动漫化:

    我仿佛听到动漫人物“字符串”: 讨厌,人家是自带胸器(单引号)的啦!

    配乐响起:just 地雷,just 地雷,地雷 ~地雷~ 

    参考来源:https://bbs.csdn.net/topics/100119798

  • 相关阅读:
    查看dll定义的宏
    循环调用dll库的界面时,首次正常,再次无响应
    strftime使用%F格式化日期失败
    自己程序生成的二维码部分手机无法识别
    Drools规则
    idea快捷键
    风控文档笔记
    工作笔记
    工具方法
    BIO,NIO,AIO
  • 原文地址:https://www.cnblogs.com/hao-1234-1234/p/9358661.html
Copyright © 2011-2022 走看看