数据库查询操作

问题描述

请问大家:我有好几个textbox,都是写查询限制条件的,都指定了数据库的某字段,现在我想让有某个(或者好几个)textbox为空时跳过那个字段查询,这个查询语句该如何写啊

解决方案

解决方案二:
你不把那个字段作为查询条件不就完了
解决方案三:
引用1楼的回复:

你不把那个字段作为查询条件不就完了

可能是我表达的不太清楚,textbox的值我可以填写可以不填写,不是任何时候都为空
解决方案四:
是不是说有值就作为查询条件,没有就不作为查询条件,那样用string.IsNullOrEmpty()判断下,拼接sql
解决方案五:
引用2楼的回复:

引用1楼的回复:你不把那个字段作为查询条件不就完了可能是我表达的不太清楚,textbox的值我可以填写可以不填写,不是任何时候都为空

根据为不为空分别动态拼接不同的sql
解决方案六:
给个方案比如你有这几个字段a,b,c而你查询selecta,b,cfromtbwherea=''andb=''你可以这样试试selecta,b,cfromtbwhere(a+b+c)like'%这是写你相要匹配的值%'
解决方案七:
有遇到同样问题学习中谢谢支持
解决方案八:
使用stringbuilder数据类型保存Sql语句,然后用判断语句根据不同的情况Appline语句
解决方案九:
引用3楼的回复:

是不是说有值就作为查询条件,没有就不作为查询条件,那样用string.IsNullOrEmpty()判断下,拼接sql

您说的意思是这样的,但是拼接sql就是我的难点啊
解决方案十:
引用4楼的回复:

引用2楼的回复:引用1楼的回复:你不把那个字段作为查询条件不就完了可能是我表达的不太清楚,textbox的值我可以填写可以不填写,不是任何时候都为空根据为不为空分别动态拼接不同的sql

我现在就在拼接这边卡住了
解决方案十一:
我觉得在代码中不用任何逻辑判断只用SQL就可以达到,用代码比较麻烦.selecta,b,cfrommytablewhere(a=:Aorb=:Borc=:C)andaisnotnullandbisnotnullandcisnotnull;

解决方案十二:
引用5楼的回复:

给个方案比如你有这几个字段a,b,c而你查询selecta,b,cfromtbwherea=''andb=''你可以这样试试selecta,b,cfromtbwhere(a+b+c)like'%这是写你相要匹配的值%'

你这里只是一个textbox做模糊查询把
解决方案十三:
比如要查询的条件是@a1,@a2,@a3select*fromtable(你要查询的表)where1=1and(isnull(@a1,'')==''ortable.某个字段=@a1)and(isnull(@a2,'')==''ortable.某个字段=@a2)and(isnull(@a3,'')==''ortable.某个字段=@a2)
解决方案十四:
比如要查询的条件是@a1,@a2,@a3select*fromtable(你要查询的表)where1=1and(isnull(@a1,'')=''ortable.某个字段=@a1)and(isnull(@a2,'')=''ortable.某个字段=@a2)and(isnull(@a3,'')=''ortable.某个字段=@a2)
解决方案十五:
引用10楼的回复:

我觉得在代码中不用任何逻辑判断只用SQL就可以达到,用代码比较麻烦.SQLcodeselecta,b,cfrommytablewhere(a=:Aorb=:Borc=:C)andaisnotnullandbisnotnullandcisnotnull;

如果我某一次查询不需要A列的时候不就报错了吗
其他方案:
引用9楼的回复:

引用4楼的回复:引用2楼的回复:引用1楼的回复:你不把那个字段作为查询条件不就完了可能是我表达的不太清楚,textbox的值我可以填写可以不填写,不是任何时候都为空根据为不为空分别动态拼接不同的sql我现在就在拼接这边卡住了

类似如下这种stringstrSql="select*fromtablewhere1=1";stringstrW="";if(条件1!="")strW+="and字段1='"+条件1+"'";if(条件2!="")strW+="and字段2='"+条件2+"'";strSql+=strWdatatabledt=run(strsql);
其他方案:
引用12楼的回复:

比如要查询的条件是@a1,@a2,@a3select*fromtable(你要查询的表)where1=1and(isnull(@a1,'')==''ortable.某个字段=@a1)and(isnull(@a2,'')==''ortable.某个字段=@a2)and(isnull(@a3,'')==''ortable.某个字段=@a2)

谢谢。我试试看
其他方案:
引用15楼的回复:

引用9楼的回复:引用4楼的回复:引用2楼的回复:引用1楼的回复:你不把那个字段作为查询条件不就完了可能是我表达的不太清楚,textbox的值我可以填写可以不填写,不是任何时候都为空根据为不为空分别动态拼接不同的sql我现在就在拼接这边卡住了类似如下这种stringstrSql="select……

哦,明白了。谢谢

时间: 2025-01-05 20:03:16

数据库查询操作的相关文章

rails常用数据库查询操作、方法浅析_ruby专题

1.获取数据 获取第一条.最后一条记录 复制代码 代码如下: Model.first Model.first(options) Model.find(:first, options) Model.last Model.last(options) Model.find(:last, options) 通过id获取记录 复制代码 代码如下: Model.find(1, 10, options) Model.find([1, 10], options) .find all 复制代码 代码如下: Mod

数据库表的查询操作(实验二)_MsSql

[实验目的]:了解SQL语言的使用,进一步理解关系运算,巩固数据库的基础知识.[实验要求]:掌握利用Select语句进行各种查询操作:单表查询.多表连接及查询.嵌套查询.集合查询等.[实验内容]一.单表查询1.简单查询打开查询分析器,根建立teacher表,并加入数据.从teacher表中分别检索出教师的所有信息,以及仅查询教工号.姓名和职称.语句如下: select * from teacher select tno, tname from teacher 如要查询时改变列标题的显示,则从te

数据库表的查询操作实践演练(实验三)_MsSql

继前两次的实验,本次实验以熟练掌握利用select语句进行各种查询操作:单表查询.多表连接及查询.嵌套查询.集合查询等,巩固数据库查询操作. 下面就跟着小编一起练习吧! 在实验一创建并插入数据的表(Student, Course,SC,Teacher,TC)的基础上,完成以下操作. (1)将教师'罗莉'的名字改为'罗莉莉'. 复制代码 代码如下: update Teacher set tname='罗莉莉' where tname='罗莉' (2)将两个同学(数据自己临时设置,用后即删除)的两门

数据库表的查询操作实践演练(实验三)

继前两次的实验,本次实验以熟练掌握利用select语句进行各种查询操作:单表查询.多表连接及查询.嵌套查询.集合查询等,巩固数据库查询操作. 下面就跟着小编一起练习吧! 在实验一创建并插入数据的表(Student, Course,SC,Teacher,TC)的基础上,完成以下操作. (1)将教师'罗莉'的名字改为'罗莉莉'. 复制代码 代码如下:update Teacher set tname='罗莉莉' where tname='罗莉' (2)将两个同学(数据自己临时设置,用后即删除)的两门课

Java 8 Streams中的数据库CRUD操作

接触一个新工具的时候,刚开始要克服的最大障碍就是如何让你自己先尝试做出一个小东西来.现在你也许对 Java 8 中新的 Stream API 的运作方式在理解上比较自信,但你也许并没用它来进行过数据库查询操作.为了帮助你开始使用 Stream API 来对 SQL 数据库进行创建.修改和读取操作, 我已经在这个快速开始的教程中把它们整合到了一起.希望它能帮助你提升对流式API的使用水平! 背景 Speedment 是一个开放源代码的工具集,它可以被用来生成 Java 实体,并且能将我们同数据库的

数据库组件 Hxj.Data (三)(查询操作篇)

Hxj.Data使用入口在Hxj.Data.DbSession,DbSession类封装常用的操作,比如: From<T>,Insert<T>,Update<T>,Delete<T>等常用方法. DbSession.Default是一个默认的DbSession.在默认情况下会自动读取web.config/app.config配置文件中connectionStrings节点的最后一 个配置. 可以通过条用DbSession的SetDefault方法来修改这个D

MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)

[正文] 首先需要回顾一下上一篇文章中的内容:MySQL数据库学习笔记(八)----JDBC入门及简单增删改数据库的操作 一.ResultSet接口的介绍: 对数据库的查询操作,一般需要返回查询结果,在程序中,JDBC为我们提供了ResultSet接口来专门处理查询结果集. Statement通过以下方法执行一个查询操作: ResultSet executeQuery(String sql) throws SQLException  单词Query就是查询的意思.函数的返回类型是ResultSe

查询-MFC 在用户界面对数据库的操作

问题描述 MFC 在用户界面对数据库的操作 mfc如何实现对数据库的查询 表名table 列 id,name 如何能通过输入id,查找到name 新手求教 解决方案 不同的数据库,操作是不一样的. 如:MFC中简单的数据库文件操作(添加,修改,查找,删除) 完整的VC下SQLite的使用 解决方案二: id是主键吧,select name from table where id =...

在Java的Hibernate框架中对数据库数据进行查询操作_java

Hibernate查询语言(HQL)是一种面向对象的查询语言,类似于SQL,但不是对表和列操作,HQL适用于持久对象和它们的属性. HQL查询由Hibernate转换成传统的SQL查询,这在圈上的数据库执行操作. 虽然可以直接使用SQL语句和Hibernate使用原生SQL,但建议使用HQL尽可能避免数据库可移植性的麻烦,并采取Hibernate的SQL生成和缓存策略的优势. 都像SELECT,FROM和WHERE等关键字不区分大小写,但如表名和列名的属性是区分在HQL敏感. FROM 语句使用