模糊查询 错误

问题描述

新手求助。想把书上的例题改下,变成模糊查询,但老是出错,请各位高手拉兄弟一把。ModulemdlDisplaySearchData【查询的类】PublicSubDataBind(ByValconnStrAsString,ByValTableAsString,ByValfrmConntrolAsDataGridView,ByValstrFieldAsString,ByValstrValueAsString)'连接数据库DimcnAsNewOleDb.OleDbConnection(connStr)'打开数据库cn.Open()'设置执行SQL语句DimstrSQL="Select*from"+TableIf(strValue<>"")ThenstrSQL=strSQL+"where"+strField+"like"+strValue(strSQL=strSQL+"where"+strField+"like"+“%”+strValue+“%”)EndIfDimcmdAsOleDb.OleDbCommand=NewOleDb.OleDbCommand(strSQL,cn)cmd.CommandType=CommandType.TextDimdaAsNewOleDb.OleDbDataAdapter()da.SelectCommand=cmd'执行查询命令cmd.ExecuteNonQuery()'填充数据集DimdsAsNewDataSetda.Fill(ds,Table)'设置显示的数据表frmConntrol.DataSource=ds.Tables(Table)EndSubEndModule【控件上的代码】DimconnStrAsString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=g:gsvb1111zr.mdb"dimstrTable,strField,strValueasstringstrTable="产品表"strField="产品代码"strValue="'"+Trim(Me.TextBox1.Text)+"'"(strValue="'%"&Trim(Me.TextBox1.Text)&"%'")mdlDisplaySearchData.DataBind(connStr,strTable,dd,strField,strValue)【错误提示】发生了System.Data.OleDb.OleDbExceptionErrorCode=-2147217900Message="语法错误在查询表达式'产品代码like%'G30'%'中。"Source="MicrosoftJETDatabaseEngine"StackTrace:在System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMSdbParams,Object&executeResult)在System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object&executeResult)在System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehaviorbehavior,Object&executeResult)在System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehaviorbehavior,Stringmethod)在System.Data.OleDb.OleDbCommand.ExecuteNonQuery()在_11.mdlDisplaySearchData.DataBind(StringconnStr,StringTable,DataGridViewfrmConntrol,StringstrField,StringstrValue)位置G:gsvb1111mdlDisplaySearchData.vb:行号22

解决方案

解决方案二:
SQL语法错误正确构建后的形式应该如下面的select*Fromtablewherefieldnamelike'%G30%'DimstrSQL="Select*from"+TableIf(strValue<>"")ThenstrSQL=strSQL+"where"+strField+"like'%"+strValue+"%'"EndIf
解决方案三:
(strSQL=strSQL+"where"+strField+"like"+“%”+strValue+“%”)==>(strSQL=strSQL+"where"+strField+"like'%"+strValue+"%'")1、SQL語句裏面的字串要用單引號2、SQL語句裏面的符號及關鍵字是WesternPunctuation,“%”這種寫法是識別不了的,應該是"%"。
解决方案四:
发生了System.Data.OleDb.OleDbExceptionErrorCode=-2147217900Message="语法错误在查询表达式'产品代码like%'G30'%'中。"错误不是写的很清楚吗??这样:select*fromtablewhere**like'%'G30'%'是不行的.应该是select*fromtablewhere**like'%G30%'才对.
解决方案五:
多谢楼上各位的指点,将strSQL=strSQL+"where"+strField+"like'%"+strValue+"%'"后,提示出错。发生了System.Data.OleDb.OleDbExceptionErrorCode=-2147217900Message="语法错误(操作符丢失)在查询表达式'产品代码like'%'G307'%''中。"Source="MicrosoftJETDatabaseEngine"StackTrace:在System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMSdbParams,Object&executeResult)在System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object&executeResult)在System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehaviorbehavior,Object&executeResult)在System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehaviorbehavior,Stringmethod)在System.Data.OleDb.OleDbCommand.ExecuteNonQuery()在_11.mdlDisplaySearchData.DataBind(StringconnStr,StringTable,DataGridViewfrmConntrol,StringstrField,StringstrValue)位置G:gsvb1111mdlDisplaySearchData.vb:行号24
解决方案六:
引用4楼zr784的回复:

多谢楼上各位的指点,将strSQL=strSQL+"where"+strField+"like'%"+strValue+"%'"后,提示出错。发生了System.Data.OleDb.OleDbExceptionErrorCode=-2147217900Message="语法错误(操作符丢失)在查询表达式'产品代码like'%'G307'%''中。"Source="MicrosoftJETDatabaseEngine"StackTrace:在System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(t…

strSQL=strSQL+"where"+strField+"like'%"+strValue+"%'"改成strSQL="select*from'"&Table&"'where'"&strField&"'like'%"&strValue&"%'"
解决方案七:
将查询条件中的单引号替换为两个单引号strValue改为strValue.replace("'","''")
解决方案八:
最好在程序中设置一个断点,看一下你构造的SQL语句strSQL到底是怎么样的,到你的数据库工具里执行一下就知道问题了。
解决方案:
语法!

时间: 2024-09-20 00:02:03

模糊查询 错误的相关文章

web开发-动态sql实现模糊查询错误

问题描述 动态sql实现模糊查询错误 public List findByCondition(String readerTypeId, String barcode, String name, final int page, final int pageSize) throws DAOException { final List params = new ArrayList(); final String hql = createFindHQL(readerTypeId, barcode, na

asp下实现多条件模糊查询SQL语句

条件|语句 作者:吕海鹏 来自:www.DeepTeach.com 摘要:这篇文章主要针对有一定asp编程经验和SQL语句基础的爱好者如何写模糊查询语句和多条件查询. 很多网友问到如何写模糊查询语句和多条件查询,今天网友小爱又问起了这个问题,刚好前几天给一个单位写个OA涉及到多条件模糊查询,那个查询比较多.专业名词也多,这里我整理了一下,假设以姓名.性别.电话号...作为数据库中的字段名. 通常写一个简单的模糊查询的SQL语句格式可以如下例: 说明:1.WHERE 关键词的后面跟着用来过滤数据的

java留言管理系统中模糊查询实例分享_java

本文分享了一个基于MVC+DAO的留言管理系统,包含增删改查,其中查询,有全部查询和按关键字进行模糊查询的功能,具体内容如下 NoteDAO.Java package cn.mldn.lxh.note.dao ; import java.util.* ; import cn.mldn.lxh.note.vo.* ; public interface NoteDAO { // 增加操作 public void insert(Note note) throws Exception ; // 修改操作

模糊查询 含通配符-ORACLE: 含通配符的模糊查询

问题描述 ORACLE: 含通配符的模糊查询 SELECT count(*) FROM MSG_SENDWHERE STATUS = '1' AND SEND_ID = '210000000004843' AND CONTENT like '%_%' AND SEND_TIME >= to_date('2013-08-02 00:00:00''YYYY-MM-DD HH24:Mi:SS') AND SEND_TIME <= to_date('2013-08-22 23:59:59''YYYY-

ibatis中的模糊查询

看两个最基本的语句 ①select * from student where name like 'xy' ②select * from student where naem like '%xy%' 两个语句都是用了like,貌似都是模糊查询的样子.其实①实际上是一个完全匹配的查询,与用等号写成如下语句是一致的.①语句等价于select * from student where name = 'xy'.这就给在ibatis写模糊查询语句带来启示. 例子一 <dynamic prepend="

模糊查询分页技术,做了之后,分页不能实现

问题描述 模糊查询分页技术,做了之后,分页不能实现 在页面通过from表单提交某些数据,在后台里进行模糊查询,查询出来的东西正常显示在页面上,但是,当一点击下一页的时候,向后台提交不了输入的关键词,该如何解?急求. 解决方案 分页模糊查询存储过程Access 模糊 参数 查询 分页 解决方案二: 在后台生成页脚(第一页,第二页)的时候,就把你搜索的参数带过去. 解决方案三: 怎么提交不了?你的代码咋写的 解决方案四: 代码贴出来, 解决方案五: 点击下一页的时候,从容器或者什么数据结构中取第二页

在C#里面模糊查询

问题描述 我想在模糊查询一个数据表时,在textbox中输入关键字,进行模糊查询.在查询生成器中SELECTSno,Sname,Ssex,Sage,SdeptFROMStudentWHERE(SnoLIKE'%"+@sno+"%')这样写好像不对啊,具体该怎么写呢,或者有什么别的方法? 解决方案 解决方案二:怎么不行,你把最后拼成的sql语句打印出来看看,是不是拼错了解决方案三:查询分析器中格式select*fromscore1wherenamelike'%'+@dd+'%' 解决方案

IOS开发数据库篇—SQLite模糊查询

一.示例 说明:本文简单示例了SQLite的模糊查询 1.新建一个继承自NSObject的模型 该类中的代码: 1 // 2 // YYPerson.h 3 // 03-模糊查询 4 // 5 // Created by apple on 14-7-27. 6 // Copyright (c) 2014年 wendingding. All rights reserved. 7 // 8 9 #import <Foundation/Foundation.h> 10 11 @interface Y

3.QT数据库综合案例,模糊查询等操作

 1 新建一个项目: Database01.pro SOURCES += \     main.cpp \     Contact.cpp   QT += gui widgets sql   CONFIG += C++11   HEADERS += \     Contact.h Contact.h #ifndef CONTACT_H #define CONTACT_H   #include <QWidget> #include <QSqlTableModel> #includ