求助~~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代码,你可以参考一下,

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

<form action="">

<table width="160" border="0" cellspacing="0" cellpadding="0">

<tr align="center">

<td width="55" height="30">类 别:</td>

<td width="105"><select name="style">

<option selected value="all">全部信息</option>

<option value="company">企业名</option>

<option value="ways">通知方式</option>

<option value="lxr">联系人</option>

</select></td>

</tr>

<tr align="center">

<td height="30">关键字:</td>

<td><input name="txtitle" type="text" class="input" size="15" value="请输入关键字" onFocus=thisvalue='' style="font-size:9pt; color:#FF0000;background-color:#F7F7F7;border-left: 1px solid rgb(192,192,192); border-right: 1px solid rgb(192,192,192); border-top: 1px solid rgb(192,192,192); border-bottom: 1px solid rgb(192,192,192)"></td>

</tr>

<tr align="center">

<td height="30"> </td>

<td><input type="submit" name="Submit3" value="查 询"></td>

</tr>

</table>

</form>

<%if request("txtitle")<>"" then

txtitle=request("txtitle") '搜索关键字内容

end if

if request("style")<>"" then

style=request("style")'搜索类别

end if

set rs=serverCreateObject("adodbrecordset")

if style="all" then'搜索所有的

sql="select from news where company like '%"&txtitle&"%' or ways like '%"&txtitle&"%' or lxr like '%"&txtitle&"%' order by id desc"

elseif style="company" then'按公司名

sql="select from news where title like '%"&txtitle&"%' order by id desc"

elseif style="ways" then '按通知方式

sql="select from news where ways like '%"&txtitle&"%' order by id desc"

elseif style="lxr" then '按联系人

sql="select from news where lxr like '%"&txtitle&"%' order by id desc"

else

sql="select from news where company like '%"&txtitle&"%' or ways like '%"&txtitle&"%' or lxr like '%"&txtitle&"%' order by id desc"

end if

rsopen sql,conn,1,1

rsPageSize =20

Page = CLng(Request("Page"))

'分页显示

If not Page >1 Then Page = 1

If Page > rsPageCount Then Page = rsPageCount

j=page+(page-1)9

rsAbsolutePage = Page

For i=1 To rsPageSize

if rseof then exit for

%>

可放入你自己想输出的内容

<%rsmovenext

next

%>

<form ACTION="" METHOD="post">

<tr>

<td height="25" align="center" bgcolor="#E1F4E1">共 <span class="org1"><%=rsRecordCount%></span>

条记录,<span class="org1"><%=rsPageCount%></span> 页,当前第 <span class="org1"><%=Page%></span>

页。<%If Page <> 1 Then%>

[<a href="Page=1">

首页</a>]

[<a HREF="Page=<%=(Page-1)%>">

前一页</a>]

<% End If

If Page <> rspageCount Then

%> [<a HREF="Page=<%=(Page+1)%>">

后一页</a>]

[<a HREF="Page=<%=rsPageCount%>">

末页</a>] <%End If %>

输入页次: <input NAME="Page" SIZE="3"></td>

</tr></form>

</table>

这个比较难啊,因为你要实现这个功能,服务员很高。

如果只是一个输入框的话,还好,但是数据量很大的情况下就比较负载高了。

原理是加载页面的时候,已经把你设置好的关键字或者数据库内容提取出来。

然后根据用户输入的按键触发事件,检索匹配内容,在返回输入框提示,和百度那个一样吧,你可以搜索一下,建议服务器负载不好的,尽量不要做这个,宁可你在下面加上热门关键字还好。

现在都是用户体验时代,速度慢会让你流失很多用户的

思路就是先假设只有一条记录,制作这个表格

然后再利用循环语句嵌入到表格代码中,使数据库内容循环显示出来

正好有点时间,写了一下代码,数据库路径,表名,字段名你自己改成你实际的就可以了

<table width="100%" border="1">

<tr>

<td width="10%"> </td>

<td width="30%"><div align="center">场地名称</div></td>

<td><div align="center">预定人</div></td>

<td><div align="center">时间</div></td>

</tr>

<%

'链接数据库

Set conn=servercreateobject("ADODBConnection")

connopen "dbq=" & serverMapPath("数据库路径和名称") & ";Driver={microsoft access driver (mdb)}"

'查询数据库

set rs = connexecute("select from 表名 order by 预定时间的字段名 ASC")

'循环显示所有内容

do while not rsbof and not rseof

%>

<tr>

<td width="10%"><div align="center">月份</div></td>

<td width="30%"><div align="center"><%=rs("场地名称的字段名")%></div></td>

<td><div align="center"><%=rs("预定人的字段名")%></div></td>

<td><div align="center"><%=rs("预定时间的字段名")%></div></td>

</tr>

<%

rsmovenext

loop

%>

</table>

conn连接数据库的自行搞定。

connexecute("select from 表 where 字段 like '%"&replace(request("q"),"'","")&"%'")

if not rseof then

while not rseof then

'输出

end if

rsclose

{Microsoft Access Driver (mdb, accdb)};

或者用OLEDB来连接,设置ConnectionString 属性的 Provider 参数设置为“MicrosoftACEOLEDB120”

如果两个都不行,那就是驱动问题了,去微软官网下载AccessDatabaseEngineexe。

或者安装2007以上的access。。。

以上就是关于求助~~ASP实现数据库查询全部的内容,包括:求助~~ASP实现数据库查询、用ASP搜索数据库~、asp怎样实现文本框输入自动检索数据库,形成选择列表,然后选择输入好像叫智能匹配等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/sjk/10102861.html

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

发表评论

登录后才能评论

评论列表(0条)

保存