求助~~ASP实现数据库查询

求助~~ASP实现数据库查询,第1张

首先不推荐使用SELECT ,最好是你要使用哪些字段,就列出那些字段

SELECT 备编号,设备名称,设备类型,使用年限,所属部门 FROM 表名

WHERE 所属部门=[选中的部门] AND 设备类型 = [选中的类型]

我想你SQL语句应该会写,这个地方难点在于,你检索的条件,不一定同时出现,有可能只出现一个,

SELECT 备编号,设备名称,设备类型,使用年限,所属部门 FROM 表名

WHERE 所属部门=[选中的部门]

SELECT 备编号,设备名称,设备类型,使用年限,所属部门 FROM 表名

WHERE 设备类型 = [选中的类型]

还有最初的一条

这三条检索词句都可能出现这个也是开发时常遇到的动态SQL问题

在程序中,执行SQL语句的是API提供的方法,一般只要传一个字符串即可,

那我们就可以在字符串上做手脚

首先创建一个条件为真的SQL语句

String strSQL = "SELECT 备编号,设备名称,设备类型,使用年限,所属部门 FROM 表名 WHERE 1=1 "

这条SQL执行的结果,与不加WHERE的结果是相同的,

这样做了以后,条再有变化就可以添加字符串" AND 字段=表达式 "

这样的字符串,以达到运态SQL所要求的效果

以你的问题举例

if 部门选择了

strSQL += "AND 所属部门=选中的部门 ";

if 部门选择了

strSQL += "AND 设备类型 = 选中的类型 ";

这样,根据选择的不同可以得到三种SQL

SELECT 备编号,设备名称,设备类型,使用年限,所属部门 FROM 表名

WHERE 1=1 AND 所属部门=[选中的部门]

SELECT 备编号,设备名称,设备类型,使用年限,所属部门 FROM 表名

WHERE 1=1 AND 设备类型 = [选中的类型]

SELECT 备编号,设备名称,设备类型,使用年限,所属部门 FROM 表名

WHERE 1=1 AND 所属部门=[选中的部门] AND 设备类型 = [选中的类型]

这样应该可以达到你想要的结果了

这个要注意的是,在你写的字符串后,都要加一个空格,

要不然拼出来的结果就是

SELECT 备编号,设备名称,设备类型,使用年限,所属部门 FROM 表名

WHERE 1=1AND 所属部门=[选中的部门]AND 设备类型 = [选中的类型]

AND与前面的表达式挨在一起了,这样,这就不是一个合法的SQL语句,这点要注意

这也是在实际中常遇到的问题

就是那个页面是可以反复查询的,代码怎么编

对于这个问题很迷惑,你做完查询以后,不是回到这个页吗这个问题实再不知道你想问什么

表单提交后下拉列表的值又变成了原来的值,

这个是正常的,因为页面刷新后,页面上的控件如时不控制的话,都会变成初始状态

这个需要手动控制,

<select name="sel">

<option value="0"> </option>

<option value="1">>部门1</option>

<option value="2">>部门2</option>

<option value="3">>部门3</option>

</select>

假如说你提交的是部门3,你得到了3这个值,那么在回到页面时,你要在option中加上selected这个标记,即

<select name="sel">

<option value="0"> </option>

<option value="1">>部门1</option>

<option value="2">>部门2</option>

<option value="3" selected>>部门3</option>

</select>

一船的做法是,记住提交的值

<select name="sel">

<option value="0"> </option>

<option value="1" <% if(value==1){outprintln("selected");}%>>>部门1</option>

<option value="2" <% if(value==2){outprintln("selected");}%>>>部门2</option>

<option value="3" <% if(value==3){outprintln("selected");}%> >>部门3</option>

</select>

以上是JSP代码,你可以参考一下,

这样页面刷新后,就可以保持住你选择的那个选项的状态了

这样:

select 年份=convert(varchar(4),year(max(time1)))+'年',

一月=(select sum(数据) from tablename a where year(atime1)=year(tablenametime1) and month(atime1)=1),

二月=(select sum(数据) from tablename a where year(atime1)=year(tablenametime1) and month(atime1)=2),

三月=(select sum(数据) from tablename a where year(atime1)=year(tablenametime1) and month(atime1)=3),

四月=(select sum(数据) from tablename a where year(atime1)=year(tablenametime1) and month(atime1)=4),

五月=(select sum(数据) from tablename a where year(atime1)=year(tablenametime1) and month(atime1)=5),

六月=(select sum(数据) from tablename a where year(atime1)=year(tablenametime1) and month(atime1)=6),

七月=(select sum(数据) from tablename a where year(atime1)=year(tablenametime1) and month(atime1)=7),

八月=(select sum(数据) from tablename a where year(atime1)=year(tablenametime1) and month(atime1)=8),

九月=(select sum(数据) from tablename a where year(atime1)=year(tablenametime1) and month(atime1)=9),

十月=(select sum(数据) from tablename a where year(atime1)=year(tablenametime1) and month(atime1)=10),

十一月=(select sum(数据) from tablename a where year(atime1)=year(tablenametime1) and month(atime1)=11),

十二月=(select sum(数据) from tablename a where year(atime1)=year(tablenametime1) and month(atime1)=12)

FROM tablename

group by year(time1)

以上语句测式通过。可以直接复制使用,如果具体表名,字段名称不同,直接替换表名和列名即可。(表名:TABLENAME,数据字段:数据,时间字段:TIME1)

注意,输入第一个月后,后面的月份复制就行了,然后改一下月份数即可。

之所以使用SUM统计函数,是为了防止一个年月的数据出现多次,如果出现一次,就可以不用这个函数。

有表头没数据,表示数据库 *** 作都是正确,sql语句正确。但是sql语句没查到东西。。。

但是你又说用这些语句在数据库中能查到,那么语句假如是正确,即应该能查到数据,

但是你没有数据,反过来说明sql语句的条件不正确,即where语句有问题。。。。

建议把那个sql语句拼出来,好好看看是不是和你在数据库里写的不一样。。。

不同数据库的数据类型也有点差异,建议仔细看看。。。

sql 是指数据库查询语言,拿mysql举例

一个数据库包含多个表,一个表有多行,一行包含多列

表的理解,类似excel里面的二维表格,就是一张完整的表格

一行对应一个记录(又叫做元组)描述的是一个完整的实体对象

一列对应一个字段,描述的是这个实体的属性信息

拿人作为举例,张三,李四两个人,一个人表示一行(即为一条记录),张三id:001,name:张三,age:23

张三的ID号,名称,年龄等这些代表张三的属性,每一个属性代表这个行的一列

表格的第一行都是指列,下面的每一行就是指每一个记录行,记录不同的对象信息

sql语句只是 *** 作数据库表的语言,有查询,增加,删除,修改等基本功能

select 列名 from 表名 where 列名 = 值 从表当中查询记录行

insert into 表名(id , name) values(001 , '张三') 插入一条语句

delete from 表名 where id=1 删除id等于1的记录行

update 表名 set name='王五' where id=1 更新,把id等于1的记录的,名称列值改为王五

以上就是关于求助~~ASP实现数据库查询全部的内容,包括:求助~~ASP实现数据库查询、写一条查询SQL语句,要求按年月查询 竖列表头年份 横列表头12个月份、c# 用dataSet填充了 中DataGridView 为什么 还是没有数据,只有表头,但是是从数据库中查询就有数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9775418.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存