zoukankan      html  css  js  c++  java
  • PetaPoco模糊查询

    like '@0'  是错的,应该换成这样 like @0,原因是petapoco会自动把代码解析成'你好'

    标签:

    Sql command = new Sql();
    command.Append("select * from UserInfo where 1=1");

    if (!string.IsNullOrEmpty(realName)) //外部传参
    command.Append(" and RealName like ‘%@0%‘",realName);

    但结果是查询不到结果,跟踪代码也没有发现错误,又不想用字符串拼接的方式(防止攻击)。于是跟踪了Sql的执行,发现问题在于Sql给参数自动添加了单引号。
    实际上在Sql,将like的代码解析成为了 like ‘%‘RealName‘%‘ ",所以,你怎么查也都得不到想要的结果。
    据此,我们可以将代码改成:
    代码如下:复制代码

    Sql command = new Sql();
    command.Append("select * from UserInfo where 1=1");

    if (!string.IsNullOrEmpty(realName)) //外部传参
    command.Append(" and RealName like @0","%"+realName+"%");//注意不用加单引号,传参到Sql语句中会自动添加

  • 相关阅读:
    94. Binary Tree Inorder Traversal
    101. Symmetric Tree
    38. Count and Say
    28. Implement strStr()
    实训团队心得(1)
    探索性测试入门
    LC.278. First Bad Version
    Search in Unknown Sized Sorted Array
    LC.88. Merge Sorted Array
    LC.283.Move Zeroes
  • 原文地址:https://www.cnblogs.com/james641/p/5564406.html
Copyright © 2011-2022 走看看