首先不推荐使用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代码,你可以参考一下,
这样页面刷新后,就可以保持住你选择的那个选项的状态了
建立access的数据库news,还有表news,表的字段(id,title),id唯一,输入数据保存,用下面代码可查询,可分页
-----------------------下面保存为searchasp--------------------------
<html>
<head>
<meta >
conn连接数据库的自行搞定。
connexecute("select from 表 where 字段 like '%"&replace(request("q"),"'","")&"%'")
if not rseof then
while not rseof then
'输出
end if
rsclose
action_post=request("action_post")
recepit=trim(request("recepit"))
'responseWrite action_post&recepit
if action_post<>"" and recepit<>"" then
select case(action_post)
case 1
text8str=" order by a desc "
case 2
text8str="order by b desc "
case 3
text8str=" order by c desc "
case 4
text8str="order by d desc "
end select
end if
action_sql="select from ad_gh "&text8str
rsopen action_sql,conn,1,1
例子和着差不多,a b c d为排序的字段名
我这本是多种查询的语句改改给你写了,
读取相应的参数,判断类型给参数赋值,进行查询就差不多了
祝你好运
给你一个思路:
你所谓的“倒数”,也就是有一个数法,就是依据什么方法去数!要是这样的话,通常我做数据库时如果存储N个人的信息,,那么就用ID这个字段(那种自动编号的)。
就有:select name from user order by ID desc
这样就把数据的倒序选出来了,取前三个就行了,
如果用RecordSet对象做:
aa=RS("name")value
RSmoveNext
bb=RS("name")value
RSmoveNext
cc=RS("name")value
这样就OK了。
'第一处,请注意橙色语法部分
sql="select from zhang"rsopen sql,conn,1,1
If Not (rsbof And rseof) Then '不为空时显示
do while not rseof%>'<%= rs("hao") %>',<% rsmovenext
loop
Else
responsewrite "没有数据"
End If
rsclose
'第二处,请注意橙色语法部分
sql="select from zhangdan where hao='"&request("danhao")&"'"
rsopen sql,conn,1,3
If Not(rsbof And rseof) Then '不为空时,表示有数据才能更新
if request("act")="mod" then
rsupdate
End If
rsclose
rsclose
set rs=nothing
Session("Password")=rs("password") 'rs在上面已经close了,这里的rs("password")还有值吗????
改成:
Session("Password")=rs("password")
rsclose
set rs=nothing
ResponseRedirect "mainasp"
ResponseEnd
----------------------------------------------------------------------------------------------------
mainasp
<%
If Not RequestCookies("Password")="Password" Then
ResponseRedirect "Indexasp"
ResponseEnd
End If
%>
改为:
<%
if Session("Password")="" Then
ResponseRedirect "Indexasp"
ResponseEnd
End If
%>
以上就是关于求助~~ASP实现数据库查询全部的内容,包括:求助~~ASP实现数据库查询、asp在当前页面中查询信息、ASP查询数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)