zoukankan      html  css  js  c++  java
  • 微软EnterpriseLibrary中使用SQL LIKE语句遇到的问题

    下面是使用微软EnterpriseLibrary时的一段代码:

    public DataTable GetContractReportData(string userName)
    {
        Database db = DatabaseFactory.CreateDatabase("SQLDBConnection");
         string sql = @"SELECT 
                              [UserName]
                             ,[Birthday]
                        FROM [UserInfo]
                        WHERE 1 = 1 AND [UserName] LIKE '%@userName%' ";
         DataTable dt = new DataTable();
         using (DbCommand cmd = db.GetSqlStringCommand(sql))
         {
             db.AddInParameter(cmd, "@userName", DbType.String, userName);
             dt = db.ExecuteDataSet(cmd).Tables[0];
         }

         return dt;
    }
    执行上面的代码后,返回空记录,可DB里明明是有数据的。经过仔细研究,发现LIKE语句的使用有问题,只要把上例中红色标识的代码替换为
    WHERE 1 = 1 AND [UserName] LIKE '%' + @userName + ’%'";
    程序执行后可以正常返回记录。

  • 相关阅读:
    LVS负载均衡NAT模式实现
    Linux-ftp服务搭建
    Keepalived配置详解
    Keepalived高可用概念篇
    Nginx-http_proxy_module模块
    Nginx-keepalived+Nginx实现高可用集群
    Oracle注入之带外通信
    Oracle基于延时的盲注总结
    Oracle基于布尔的盲注总结
    Oracle报错注入总结
  • 原文地址:https://www.cnblogs.com/andy65007/p/1212993.html
Copyright © 2011-2022 走看看