帮忙解决问题~~

fosygangguo 2004-08-05 08:49:34
sel1.asp---------
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<LINK REL=StyleSheet HREF="../../site.css" TYPE="text/css">
<title>无标题文档</title>
<script language="JavaScript" src="../../JS/js_win.js"></script>
</head>
<body background="../../images/bg2.gif"><div align="center">
<div align="center">
<p><em><font color="#125B6D" size="5"><u>查询</u></font></em>
<%dim sou
dim num
sou=request.Form("sel")%>
<%
set conn = server.createobject("adodb.connection")
cnor="driver={sql server};server=wgg;uid=sa;pwd=swgzs;database=ccdams"
conn.open cnor
set rs=server.createobject("adodb.Recordset")


rs.Source="表管理"'表或sql语句‘若写成sql语句形式,无法判数据源
rs.ActiveConnection=conn
rs.CursorType=1
rs.LockType=3
rs.open%>
<%
i=1
do until rs.eof
if cint(sou)=i then
truesel=1
sou1=rs("tablename")
Session("columnnum")=i
num=i%>
<% end if
i=i+1
rs.movenext
loop



rs.movefirst()

%>
<%if truesel=1 then
rs.close
set rs = server.createobject("adodb.Recordset")'创建Recordset对象
rs.Source=sou1'表或sql语句‘若写成sql语句形式,无法判数据源
session("mysourse")=sou1%>
<%rs.ActiveConnection=conn
rs.CursorType=1
rs.LockType=3
rs.open



set conn = server.createobject("adodb.connection")
cnor="driver={sql server};server=wgg;uid=sa;pwd=swgzs;database=ccdams"
conn.open cnor

set chinars=server.createobject("adodb.Recordset")
chinars.ActiveConnection=conn
chinars.CursorType=1
chinars.LockType=3
chinars.Source="表字段"
chinars.open
end if%>
<%j=1%>
<%Session("passsel1")=1%>
<%if truesel<>1 then%>
</p>
<p> </p>
</div>
<form action="sel1.asp" method="post">
<%j=0%>
<div align="center">请选择您要查询的表格名称:
<select name="sel">
<!-- 若选取了表,则从 3 开始-->
<option value=<%=(i)%>></option>
<%do until rs.eof
j=j+1%>
<option value=<%=j%>><%=rs("chinaname")%></option>
<!-- 第零个字段开始,故一个字段的只零-->
<%=rs("chinaname")%>
<%rs.movenext

loop
%>
</select>
<input name="" type="submit" value="确 定"></P>
</div>
</form>
<div align="center">
<%end if%>
</div>
<form action="sel2.asp" method="post">
<%if rs.source<>"表管理" then%>
<p align="center"> </p>
<p align="center">  请选择您要查询的条件项:</p>
<p align="center">

<select name="mutisel" size="5" multiple>
<%for each obj in rs.fields%>
<option value="<%=obj.name%>"><%=chinars(num-1)%></option>
<%chinars.movenext%>
<%next%>
</select>

</p>
<p align="center">
<input name="" type="submit" value="确 定">
   
<input name="" type="button" value="返 回" onClick="location.href='sel1.asp'">
</form>
<%end if%>
<script language="JavaScript" src="../../JS/Calendar.js"></script>
</body>
</html>
这是第一个页面。



...全文
67 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
fosygangguo 2004-08-05
这是第二个页面
SQL数据库

名称:CCDAMS
表:表字段,表管理,f_zl_jnml,f_zl_flml


字段:表字段里面 T_zl_jnml nvarchar255
T_zl_flml nvarchar 255

T_zl_jnml T_zl_flml
序号 344
文件编号 34
责任者 34
文件提名 34
日期
页次
备注
ID号
卷内文件
表管理里面 tablename nvarchar 50
chinaname nvarchar 50

tablename chinaname

T_zl_jnml 卷内目录
T_zl_flml 23

f_zl_jnml里面
1 F_xh int 4 1
0 f_wjbh varchar 60 1
0 F_zrz varchar 50 1
0 F_wjtm varchar 200 1
0 F_rq varchar 30 1
0 F_yh varchar 20 1
0 F_bz varchar 100 1
0 F_id bigint 8 0 (自增长)
0 F_ajtmid bigint 8 1
0 F_dh varchar 20 1

f_zl_flml里面
1 F_xh int 4 1
0 F_dh varchar 20 1
0 F_ajtm varchar 100 1
0 F_bzdw varchar 100 1
0 F_bzrq varchar 30 1
0 F_jgrq varchar 30 1
0 F_cfwz varchar 20 1
0 F_js int 4 1
2 F_id int 4 0
0 F_zmlxh int 4 1
0 F_ltj int 4 1
0 F_ltz int 4 1
0 F_zpc int 4 1
0 F_zpz int 4 1
0 F_wzzlj int 4 1
0 F_wzzlz int 4 1
0 F_mj varchar 20 1
0 F_bgqx varchar 20 1
0 F_bz varchar 50 1
0 f_ljsm varchar 100 1
0 f_ljr varchar 20 1
0 f_ljrq varchar 30 1
0 f_shr varchar 20 1
0 f_shrq varchar 30 1
0 F_lb varchar 10 1
0 F_finish bit 1 1
0 F_select bit 1 1
0 f_lsh int 4 1
0 F_djj int 4 1
0 F_ajtm_xh int 4 1
0 F_y1 varchar 4 1
0 F_y2 varchar 4 1
0 F_y3 varchar 4 1
0 F_y4 varchar 4 1
0 F_m1 varchar 2 1
0 F_r1 varchar 2 1
0 F_m2 varchar 2 1
0 F_m3 varchar 2 1
0 F_m4 varchar 2 1
0 F_r2 varchar 2 1
0 F_r3 varchar 2 1
0 F_r4 varchar 2 1
0 f_jsshr varchar 8 1
0 f_dajsr varchar 8 1
0 f_jssm varchar 50 1
0 F_bjjs int 4 1
0 f_jsshrrq varchar 30 1
0 f_dajsrrq varchar 30 1
0 f_now varchar 20 1


当我选择第一个表查询时没什么问题,第二个表就不能显示表里的字段了,帮忙。。。。。。。
回复
fosygangguo 2004-08-05
sel2.asp-------------
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>

<body background="../../images/bg2.gif">

<div align="center"><em><font color="#125B6D" size="5"><u>查询</u></font></em>
<!-- 取来上页传来的字符串,如果passel1为1,则有Form取,并给session值,否则从session得值。 -->
<%if Session("passsel1")=1 then
str=request.Form("mutisel")
Session("mutisel1")=str
%>
<%else
str=Session("mutisel1")
end if%>
<% '这个表打开是为两个目的。第一次是指示用户。第二次是为了给显示表格的字段名汉化。
'set con=server.createobject("adodb.connection")
'cno= "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("db1.mdb")
'con.open cno
set con = server.createobject("adodb.connection")
cno="driver={sql server};server=wgg;uid=sa;pwd=swgzs;database=ccdams"
con.open cno
'set rs=server.createobject("adodb.Recordset")

set chinars=server.createobject("adodb.Recordset")
chinars.ActiveConnection=con
chinars.CursorType=1
chinars.LockType=3
chinars.Source="表字段"
chinars.open


dim loca(10)
dim j
dim mystr(10)

j=1
for i=1 to len(str)%>
<%
m=mid(str,i,1)
if Asc(m)=044 then
loca(j)=i '这个数组中存有逗号的们置,j中存有实际上的逗号号数多一,j的值实际字符串数一样。
j=j+1
end if
next%>


</div>
<p align="center"> </p>
<%if j>1 then
for i=1 to j-1
if i=1 then
mystr(i)=mid(str,1,loca(i)-1)%>
<!-- '正确得到并显示 -->
<%else
m1=loca(i-1)+2
m2=loca(i)-loca(i-1)-2%>
<%mystr(i)=mid(str,m1,m2)%>
<%end if
next
mystr(i)=right(str,len(str)-loca(i-1)-1)%>
<!-- 因为i的值,要上面的循环中多加了一,故现在仍用i -->
<%else
i=1
mystr(1)=str
end if%>
<%Dim sel1(10),sel2(10),cxnr(10),sel3(10)'最多让用10 个
Dim x
x=1
for x=1 to 10
n=x
cstr(n)

sel2(x)="sel2"&n
cxnr(x)="cxnr"&n
sel3(x)="sel3"&n
%>
<%next'定义数组,便于操作%><!--'已证明构造字符数组成功% -->
<%
'dim colnum
colnum=Session("columnnum")-1
dim mychinastr(10)

selsource=session("mysourse")'接收上一页的表

if Session("passsel1")=1 then%><!-- 这是第一次走页面时才经过这一步 -->
<!-- 打开这个表是为第一次显示字段汉化。 -->
<% set conn1 = server.createobject("adodb.connection")
cnor1="driver={sql server};server=wgg;uid=sa;pwd=swgzs;database=ccdams"
conn1.open cnor1
'set rs=server.createobject("adodb.Recordset")





'conn1 = server.createobject("adodb.connection")
'cnor1="DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("db1.mdb")
'conn1.open cnor1
set chinars1=server.createobject("adodb.Recordset")
chinars1.ActiveConnection=conn1
chinars1.CursorType=1
chinars1.LockType=3

chinars1.Source=selsource
chinars1.open
dim y,l
y=1

for each obj in chinars1.fields

for l=1 to i
if obj.name=mystr(l) then
mychinastr(y)=chinars(colnum)
y=y+1
end if
next
chinars.movenext
next
end if%> <!-- 这是第一次走页面时才经过这一步 -->

<%x=1%>
<!-- i的值还原为1 -->
<% if Session("passsel1")=1 then%>
<form action="sel2.asp" method="post">
<%for n=1 to i%>
<!--成功 -->
<div align="center"><br>
<%=mychinastr(n)%>:
<select name=<%=sel2(n)%> size="1">
<option value="=">=</option>
<option value=">">></option>
<option value="<"><</option>
<option value=">=">>=</option>
</select>

<input type="text" name=<%=cxnr(n)%> >

<select name=<%=sel3(n)%> onchange="">
<option value="and" selected>并且</option>
<option value="or">或者</option>
</select></br>
<%next%>
</div>
<p align="center">
<input name="" type="submit" value="查 询">
<input name="" type="button" value="重新选择表" onClick="location.href='sel1.asp'">
</form>
</P>
</form>
<%end if%>
<%sqlstr="select * from "&selsource&" where "
sqlstr1=sqlstr%>
<!-- 当passsel1的值不为一时,才可以,走一段程序 -->
<%j=1%>
<%if Session("passsel1")<>1 then%>
<%for j=1 to i
aa=request.Form(cxnr(j))
aa="'"&aa&"'"
bb=mystr(j)
cc=request.Form(sel2(j))

dd=request.Form(sel3(j))
dd=" "&dd&" "
if j=i then
dd=""
end if
sqlstr=sqlstr&bb&cc&aa&dd
next%>
<%end if%>
<!-- <!-- <!-- <!-- <!-- <!-- -->
<%if sqlstr1<>sqlstr and Session("passsel1")<>1 then '如果是从上一页进入则不发过这一步

'set conn = server.createobject("adodb.connection")
'cnor="DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("db1.mdb")
'conn.open cnor
set conn = server.createobject("adodb.connection")
cnor="driver={sql server};server=wgg;uid=sa;pwd=swgzs;database=ccdams"
conn.open cnor
set rs=server.createobject("adodb.Recordset")


'set rs=server.createobject("adodb.Recordset")

rs.Open sqlstr,conn,1,3

if rs.recordcount=0 then%>
<div align="center">对不起!没有你要找的记录。
<%end if
colnum=Session("columnnum")-1%>
<div align="center">
<table align="center" cellpadding="1" cellspacing="1" bgcolor="#333333" border="0">
<tr>
<!-- 字段名显示,数据源为上页传来的rs,for的判断用它的字段数,而内部为“表字段”的某一列值。-->
<%for i=0 to rs.fields.count-1%>
<%'=obj.name%>
<td bgcolor="#cccccc"><%=chinars(colnum)%></td>
<!-- error!!!!!!!!! -->
<%chinars.movenext
next%>
</tr>
<!--输出内容-->
<%do until rs.eof%>
<tr>
<%for i=0 to rs.fields.count-1%>
<td bgcolor="#FFFFFF"><%=rs(i)%> </td>
<%next%>
</tr>
<%
rs.movenext
loop
%>
</table>
</div>
<div align="center">
<form action="" method="post">
<input name="Input" type="button" value="重 新 选 择 表" onClick="location.href='sel1.asp'">
</form>
</div>
<%end if





'关闭表字段表。
chinars.close
set chinars=nothing
con.close
set con=nothing%>
<!-- 只第一页是才有必要执行,故屏蔽 -->
<% if Session("passsel1")=1 then
chinars1.close
set chinars1=nothing
conn1.close
set conn1=nothing
end if
'当页走完时将passsel1变为0,这样第二次走这个页面时,某些不必要的语句就不必经过了。
Session("passsel1")=0%>
</div>
</body>
</html>
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2004-08-05 08:49
社区公告
暂无公告