利用select2次读取数据库里面的内容, 然后选择不同的数据, 在提交的时候插入到另外一张表里面??

kanewx 2009-05-19 07:53:22
本人菜鸟谢谢高手赐教, 想实现利用select 2次读取数据库里面的内容, 然后选择不同的数据, 在提交的时候插入到另外一张表里面.但是很久都没有弄出来,代码看了很多也不知道怎么弄,谢谢.
将选中的项目在储存回去数据库另外一张表里面, 在储存的过程出错,请麻烦看下代码:

form这里读取数据库资源
======================
<form method="POST" name="myform" onSubmit="return CheckForm();" action="save.asp?action=Add" target="_self" >
<select name="title1" size="1" >
<%while not rs.eof%>
<option selected value="<%=fields(rs("title"))%>"><%=rs.fields("title")%></option>
<%rs.movenext
wend%>
</select>

<select name="title2" size="1" > <!-- 这里不知道怎么在读取第二次次 -->
<option selected value="<%=fields(rs("title"))%>"><%=rs.fields("title")%></option>
</select>

<input type="submit" name="Submit" value="提交" class="input">
</form>
======================================================

save.asp 不知道为什么就是不能将选中数据插入到 cname的表里面, canme表只有 id, stitle1,stitle2这3个表头
=====================================================
<%
ID=Request.Form("ID")
stitle1=fields(request.form("title1"))
stitle2=fields(request.form("title2"))
Action=fields(request("Action"))
set rs=server.createobject("adodb.recordset")
select case Action
case "Add"
sql="select * from cname where (id is null)"
rs.open sql,conn,1,3
rs.addnew
call SaveData()
rs.update
rs.close
set rs=nothing
response.redirect "index.asp"
Case else
founderr=true
errmsg=errmsg+"<li>没有选定参数</li>"
call WriteErrMsg()
end select
call CloseConn()
%>
<%
sub SaveData()
rs("stitle1")=stitle1
rs("stitle2")=stitle2
end sub
%>
=======================================
...全文
144 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wlzx21 2009-05-20
  • 打赏
  • 举报
回复
可以在取TITLE1时,同时取出TITLE2存入变量中,用字串形式存储"AAA,BB,CC"
然后再存储入数组中
arr=split(字串变量,",")
再用循环从arr中依次取出

lzj34 2009-05-20
  • 打赏
  • 举报
回复
<%
rs.movefirst
%>
wlzx21 2009-05-20
  • 打赏
  • 举报
回复
<form method="POST" name="myform" onSubmit="return CheckForm();" action="save.asp?action=Add" target="_self" >
<select name="title1" size="1" >
<%while not rs.eof%>
<option selected value=" <%=fields(rs("title"))%>"> <%=rs.fields("title")%> </option>
<%rs.movenext
wend%>
</select>
<%
rs.close
'在此处再读取一次

%>

<select name="title2" size="1" > <!-- 这里不知道怎么在读取第二次次 -->
<% while not rs.eof %>
<option selected value=" <%=fields(rs("title"))%>"> <%=rs.fields("title")%> </option>
<%rs.movenext
wend%>

</select>
<%rs.close
set rs=nothing
%>
<input type="submit" name="Submit" value="提交" class="input">
</form>

SAVE.ASP

<%
ID=Request.Form("ID")
stitle1=request.form("title1")
stitle2=request.form("title2")
Action=request("Action")
set rs=server.createobject("adodb.recordset")
select case Action
case "Add"
sql="select * from cname where (id is null)"
rs.open sql,conn,1,3
rs.addnew
rs("stitle1")=stitle1
rs("stitle2")=stitle2
rs.update
rs.close
set rs=nothing
response.redirect "index.asp"
Case else
founderr=true
errmsg=errmsg+" <li>没有选定参数 </li>"
call WriteErrMsg()
end select
call CloseConn()
%>

liooon 2009-05-20
  • 打赏
  • 举报
回复

sub SaveData()
rs("stitle1")=stitle1
rs("stitle2")=stitle2
end sub


将这个函数去掉,赋值语句写回原程序位置.
liooon 2009-05-20
  • 打赏
  • 举报
回复
select case Action 
case "Add"
sql="select * from cname where (id is null)"
rs.open sql,conn,1,3
rs.addnew
call SaveData()
rs.update
rs.close
set rs=nothing
response.redirect "index.asp"
Case else
founderr=true
errmsg=errmsg+" <li>没有选定参数 </li>"
call WriteErrMsg()
end select


不是多条件判断,没必要用select case语句,用if...else 就行.
liooon 2009-05-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 kanewx 的回复:]
引用 4 楼 gsh945 的回复:
--这里不知道怎么在读取第二次


HTML code
<form method="POST" name="myform" onSubmit="return CheckForm();" action="save.asp?action=Add" target="_self" >
<select name="title1" size="1" >
<%while not rs.eof%>
<option selected value=" <%=fields(rs("title"))%>"> <%=rs.fields("title")%> </option>
<%rs.movenext
wend%>
</select>
<%
rs.movefirst
%>


[/Quote]


rs.movefirst ,将游标指向第一个查询记录;所以,你要重复输出;在要在每次循环后,将游标复位到第一条就行.
kanewx 2009-05-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 gsh945 的回复:]
--这里不知道怎么在读取第二次


HTML code
<form method="POST" name="myform" onSubmit="return CheckForm();" action="save.asp?action=Add" target="_self" >
<select name="title1" size="1" >
<%while not rs.eof%>
<option selected value=" <%=fields(rs("title"))%>"> <%=rs.fields("title")%> </option>
<%rs.movenext
wend%>
</select>
<%
rs.movefirst
%>

<select name="title2" size="1…
[/Quote]

谢谢了,这个解决了,顺便问下如果是3次呢? 我试了下第三次就不对了, 还请在赐教
郭大侠_ 2009-05-19
  • 打赏
  • 举报
回复
数据没插入?

确认执行了
case "Add"
里面的代码
郭大侠_ 2009-05-19
  • 打赏
  • 举报
回复
--这里不知道怎么在读取第二次


<form method="POST" name="myform" onSubmit="return CheckForm();" action="save.asp?action=Add" target="_self" >
<select name="title1" size="1" >
<%while not rs.eof%>
<option selected value=" <%=fields(rs("title"))%>"> <%=rs.fields("title")%> </option>
<%rs.movenext
wend%>
</select>
<%
rs.movefirst
%>

<select name="title2" size="1" >
<%while not rs.eof%>
<option selected value=" <%=fields(rs("title"))%>"> <%=rs.fields("title")%> </option>
<%rs.movenext
wend%>
</select>

<input type="submit" name="Submit" value="提交" class="input">
</form>

kanewx 2009-05-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xiaojing7 的回复:]
select中的 case then语句?
[/Quote]

什么意思,能说详细点吗? 如果代码错了,请帮我改正下。谢谢
xiaojing7 2009-05-19
  • 打赏
  • 举报
回复
select中的 case then语句?
kanewx 2009-05-19
  • 打赏
  • 举报
回复
忘记贴conn.asp了
================
<%
Dim conn,db
Dim connstr
Dim SqlNowString,FalseType,TrueType
on error resume next
IsSqlDataBase = 0 '主数据库类型(1=SQL,0=AC)

db="Data/data.mdb" '数据库文件位置

if IsSqlDataBase=1 then
TrueType = "1"
FalseType = "0"
SqlNowString = "GetDate()"
else
TrueType = "True"
FalseType = "False"
SqlNowString = "Now()"
end if
connstr="DBQ="+server.mappath(""&db&"")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
if err then
err.clear
else
conn.open connstr
end if
sub CloseConn()
conn.close
set conn=nothing
end sub
%>
================================

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧