`
冷寒冰
  • 浏览: 253304 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C#中MySQL语句带参数的模糊匹配问题

 
阅读更多

 用的是MySQL数据库,但是当我用带参数的sql语句进行模糊查询时,发现MySQL没有识别我的参数中的内容。经过了多次实验,终于找到了答案,拿出来和大家分享,不多说了,详细如下:

 public DataTable GetUserList(string strParam1,string strParam2,string strParam3,string strParam4)
  {
  StringBuilder sqlContent = new StringBuilder();
  ArrayList paramList = new ArrayList();
  sqlContent.Append(" SELECT ");
  sqlContent.Append(" column1");
  sqlContent.Append(" ,column2");
  sqlContent.Append(" ,column3 ");
  sqlContent.Append(" ,column4 ");
  sqlContent.Append(" FROM ");
  sqlContent.Append(" tab_temp ");
  sqlContent.Append(" WHERE 1=1");
  // 判断参数是否为空或""
  if (!String.IsNullOrEmpty(strParam1))
  {
  sqlContent.Append(" AND column1 LIKE @param1 ");
  // 添加参数
  paramList.Add(new MySqlParameter("@param1", "%" + strParam1+ "%"));
  }
  if (!String.IsNullOrEmpty(strParam2))
  {
  sqlContent.Append(" AND column2 LIKE @param2 ");
  paramList.Add(new MySqlParameter("@param2", "%" + strParam2 + "%"));
  }
  if (!String.IsNullOrEmpty(strParam3))
  {
  sqlContent.Append(" AND column3 LIKE @param3 ");
  paramList.Add(new MySqlParameter("@param3", "%" + strParam3+ "%"));
  }
  if (!String.IsNullOrEmpty(strParam4))
  {
  sqlContent.Append(" AND column4 LIKE @param4 ");
  paramList.Add(new MySqlParameter("@param4", "%" + strParam4+ "%"));
  }
  try
  {
  // 获取DB链接
  dbConn.getConnection();
  objDT = new DataTable();
  // 调用DBUtil中查询方法
  objDT = dbConn.executeQuery(sqlContent.ToString(), paramList);
  }
  catch (Exception e)
  {
  throw e;
  }
  finally
  {
  // 关闭DB链接
  dbConn.closeConnection();
  }
  return objDT;
  }
  正确的写法:
  sqlContent.Append(" AND column1 LIKE ?param1 ");
  // 添加参数
  paramList.Add(new MySqlParameter("?param1", "%" + strParam1+ "%"));
  错误的写法:
  sqlContent.Append(" AND column1 LIKE ‘%@param1%‘ ");
  // 添加参数
  paramList.Add(new MySqlParameter("@param1", strParam1));
1
1
分享到:
评论

相关推荐

    C#模糊查询之Sql语句

    在C#编程中,进行模糊查询通常涉及到与数据库交互,其中SQL语句是核心部分。模糊查询允许我们使用通配符来查找不完全匹配的字符串,这对于用户输入搜索关键词时非常有用。以下将详细讲解如何在C#中利用SQL进行模糊...

    C# 模糊查询

    在C#中,当我们需要从数据库中获取部分匹配的数据,比如用户输入的关键词可能只包含目标字符串的一部分时,就会用到模糊查询。本篇文章将深入探讨C#如何进行SQL的模糊查询,以及与`LIKE`关键字相关的应用。 首先,...

    实现输入拼音或者简码模糊查询数据库某个字段的值

    在IT领域,尤其是在开发数据库应用时,...2) 构建SQL查询语句,利用LIKE操作符进行模糊匹配;3)(可选)对拼音字段建立索引来优化查询性能。通过这些技术,即使用户只输入一个字母,也能快速查找到相关的数据库记录。

    爬数据,匹配关键字

    4. **模糊匹配**:在关键字匹配中,模糊匹配允许我们对用户输入的关键字进行一定程度的容忍,即使数据中存在拼写错误或轻微差异也能找到匹配项。在C#中,可以使用Jaccard相似度、Levenshtein距离算法或者正则表达式...

    C#写的设备管理系统

    这个系统展示了如何利用C#的特性和功能来构建一个实用的管理工具,尤其是在查询功能上实现了模糊匹配,这对于用户在大量设备数据中寻找特定信息显得尤为便捷。 在C#中,开发这样的系统通常涉及到以下几个核心知识点...

    C#简单的人员信息信息系统

    3. 搜索功能:添加搜索框,允许用户输入关键词进行模糊匹配,更新显示结果。 4. 编辑和删除:对每行数据提供编辑和删除按钮,实现单条记录的修改和删除操作。 四、业务逻辑 1. 数据操作:使用SqlCommand对象执行SQL...

    C#图书管理系统.rar

    查询功能则可能通过模糊匹配或精确匹配的方式,帮助用户快速找到所需的图书信息。系统可能还包括报表生成和打印功能,以便于管理员进行数据分析和统计。 最后,考虑到软件的可维护性和可扩展性,良好的代码组织结构...

    c#实现的图书管理系统

    在C#中,这些信息可存储为类的对象,通过数据库操作接口(如ADO.NET)将数据保存到数据库中。 2. 图书删除:删除图书功能需谨慎处理,通常会提供确认提示,防止误删。C#提供了数据库操作的便捷API,可以编写SQL语句...

    C#061显示国家城市列表

    这通常涉及UI事件处理和字符串匹配算法,如模糊搜索。 在实际项目中,为了使代码更易于维护和扩展,可以采用面向对象的设计原则,比如封装数据模型,使用接口定义服务,以及实现业务逻辑层和数据访问层等。 总的来...

    学生学籍管理系统C#

    3. **查询功能**:系统允许按照学生的名字或学号进行查询,这需要实现字符串匹配算法,如模糊查询。同时,为了提高查询效率,可能需要对学号等关键字段建立索引。 4. **错误处理**:系统应包含适当的异常处理机制,...

    不错的c#课程查询系统

    这涉及到字符串匹配、排序和过滤等算法,例如T-SQL中的LIKE操作符用于模糊匹配,INNER JOIN用于关联多张表。 4. **多线程技术**:为了提供更好的用户体验,系统可能采用多线程处理查询请求,避免阻塞主线程。C#提供...

    C#做的图书管理系统

    C#中的ADO.NET库提供了与SQL Server、MySQL等数据库进行交互的能力,通过SqlCommand对象执行SQL语句,SqlDataReader对象读取查询结果。 4. **用户界面设计** 图书管理系统需要提供友好的用户界面,C#的WinForms或...

    有关C#和数据库的培训WorkReport

    培训中涵盖了SQL查询的高级技巧,例如模糊查询的使用,`LIKE`关键字结合`[]`和`[^]`进行模式匹配,极大地增强了查询的灵活性。此外,还学习了日期处理函数,如获取当前日期、提取年月日、日期加减操作等,以及字符串...

    C#CMatlabSQL函数查询器

    查询功能则提供了关键字搜索,支持模糊匹配,甚至可能具备自定义条件筛选,进一步提高了查找效率。 此外,由于“函数查询器”仅提供了一个平台,具体的函数库需要用户自行填充,这鼓励了用户根据个人或项目的实际...

    MySQL数据库考试试题与答案 (2).docx

    5. 全文本搜索:`CREATE TABLE`语句的`FULLTEXT`子句用于在创建表时启用全文本搜索功能,这允许对文本字段进行更复杂的模糊匹配搜索。 6. 删除列:`ALTER TABLE`语句配合`DROP COLUMN`可以用来删除表中的列,正确...

    学生成绩管理系统 c#

    通过这个项目,开发者不仅可以提升C#编程技巧,还能深入理解数据库设计和应用,以及如何在实际场景中解决问题。对于初学者而言,这是一个很好的学习和实践平台,而对于专业人士来说,这样的系统则可以作为进一步优化...

    50条常用SQL语句.pdf

    - `%` 代表零个、一个或多个字符,用于模糊匹配。 - `_` 代表一个字符。 10. **索引**: - 索引可以加速查询速度,但会占用存储空间并可能影响数据插入和更新性能。在设计数据库时,合理创建索引至关重要。 11....

    课程设计C#与数据库实现简易英汉词典功能

    我们可以在C#代码中编写SQL语句,或者使用Entity Framework这样的ORM(对象关系映射)工具,将数据库操作转化为面向对象的方式,简化代码并提高可维护性。 实现单词的输入功能,我们需要在界面上设置一个文本框让...

    参照工具数据库数据多列模糊查询

    本主题聚焦于“参照工具数据库数据多列模糊查询”,这是一个关于如何在多个数据库列中进行非精确匹配查询的技术点。下面我们将深入探讨这个话题。 首先,我们要理解什么是模糊查询。在传统的精确查询中,我们通常...

    C# 通讯录 就像电话簿一样

    7. **搜索和排序**:为了方便用户查找联系人,可能需要实现搜索功能,可以基于姓名、电话等属性进行模糊匹配。同时,对联系人列表进行排序也很常见,可以使用`List<T>.Sort()`方法配合自定义比较器。 8. **设计模式...

Global site tag (gtag.js) - Google Analytics