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

  • 相关阅读:
    英飞凌TLE9461V33 SBC芯片
    Lin总线诊断级别定义 CLASS I 、II 、III
    AUTOSAR_SWS_CANInterface 阅读
    AUTOSAR_SWS_CANTransceiverDriver 阅读
    VS2013 快捷键
    Can总线空闲状态时候,TX,RX电平
    postman
    题目2
    Robot Framework 自动化测试
    银行测试 http://blog.csdn.net/stillming/article/details/42275251
  • 原文地址:https://www.cnblogs.com/hao-1234-1234/p/9358661.html
Copyright © 2011-2022 走看看