1. 首页
  2. .Net

.Net中使用参数化的SQL语句,如何用百分号(%)进行模糊查询

今天写代码的时候,发现需要进行模糊查询,以前直接用拼接字符串倒也都正常,没出现过什么问题,这次是参数化的sql语句,代码如下

        #region 通过TE编码获取TE信息
        public List<TEInfo> GetTEInfoByTENo(string teNo)
        {
            try
            {
                string strSql = "SELECT * from table1 where te_no=:teNo";
                OracleParameter[] paras = new OracleParameter[]{
                new OracleParameter(":teNo",SqlDbType.VarChar)
                   };
                paras[0].Value = teNo;
                DataTable dt = OracleHelper.ExecuteDataTable(OracleHelper.SPMSConnString, CommandType.Text, strSql, paras);
                List<TEInfo> wlist = new List<TEInfo>();
                foreach (DataRow dr in dt.Rows)
                {
                    TEInfo temp = new TEInfo();
                    wlist.Add(temp);
                }
                return wlist;
            }
            catch (Exception e)
            {
                OtherHelper.AddException(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName + '.' + System.Reflection.MethodBase.GetCurrentMethod().Name, e.Message);
                throw;
            }
        }
        #endregion

但是在sql中加入%号后不管怎么改都会报错,如下都会报错

string strSql = "SELECT * from table1 where te_no like %:teNo%";
string strSql = "SELECT * from table1 where te_no like ‘%’:teNo‘%’";
string strSql = "SELECT * from table1 where te_no like ‘%’+:teNo+‘%’";
string strSql = "SELECT * from table1 where te_no like ‘%’ :teNo ‘%’";

实际上,我们换个思路,这个问题也就变得很轻松了,就是在参数中改

paras[0].Value =“%”+ teNo+“%”;

ok,问题解决了

评分 0, 满分 5 星
0
0
看完收藏一下,下次也能找得到
  • 版权声明:本文基于《知识共享署名-相同方式共享 3.0 中国大陆许可协议》发布,转载请遵循本协议
  • 文章链接:http://www.yhy0.com/net_20160707_322.html [复制] (转载时请注明本文出处及文章链接)
上一篇:
:下一篇