一小段asp代码请大家帮忙(有详细资料,极具挑战性!)(20分)

  • 主题发起人 主题发起人 mazunini
  • 开始时间 开始时间
M

mazunini

Unregistered / Unconfirmed
GUEST, unregistred user!
有如下asp代码,目的是将输入的内容保存到sql2000中
listserver数据库中的listserver表中,我用iis将该
asp网页发布后输入数据,web页显示成功,但打开sql2000
数据库发现数据并没有真正录入,请问这是怎么回事??
(已经在slq2000和odbc中配置过,用户设置为hueyan,
密码1234,并测试通过!)
该表字段有username、userpassword、userlevel、
useremail、userfullname、useraddress、userphone.
asp代码如下:
<HTML>
<HEAD><TITLE>订阅电子报</TITLE></HEAD>
<% On Error Resume Next
Dim strDBDSN, strFullName, strEmail, strPhone, strUserName
Dim strAddress, strUserPassword, strSQL, objDBConn
strDBDSN="DSN=ListServer;UID=hueyan;PWD=1234"
If Request.Form <> "" then

strFullName = Request.Form("FullName")
strAddress = Request.Form("Address")
strEmail = Request.Form("Email")
strPhone = Request.Form("Phone")
strUserName = Request.Form("UserName")
strUserPassword=request.form("Password")

strSQL = "INSERT INTO ListUsers (UserName,UserPassword,UserEmail,UserFullName,UserAddress,UserPhone) "
strSQL = strSQL &amp;
"VALUES ('" &amp;
strUserName &amp;
"','"
strSQL = strSQL &amp;
strUserPassword &amp;
"','"
strSQL = strSQL &amp;
strEmail &amp;
"','"
strSQL = strSQL &amp;
strFullName &amp;
"','"
strSQL = strSQL &amp;
strAddress &amp;
"','"
strSQL = strSQL &amp;
strPhone &amp;
"')"

Set objDBConn = Server.CreateObject("ADODB.Connection")
objDBConn.Open strDBDSN
objDBConn.Execute strSQL

If objDBConn.Errors.Count > 0 then
strMessage = "数据库发生错误: " &amp;
strSQL &amp;
"<P>"
else

strMessage = "<P>" &amp;
strFullName &amp;
"已经成功的注册电子报</P>"
End If

objDBConn.Close
Set objDBConn = Nothing
End If %>
<BODY bgcolor="#FFFFFF">
<CENTER>
<FORM action = "SQLSubscribeMail.asp" method="POST">
<P align="center"><B>请输入使用者的资料订阅电子报</B></P><HR>
<%=strMessage %>
<TABLE border=1>
<TR><TD>全名:</TD>
<TD><INPUT TYPE="TEXT" NAME="FullName" size ="10"></TD>
</TR><TR>
<TD>使用者帐号:</TD>
<TD><INPUT TYPE="TEXT" NAME="UserName" size="10"></TD>
</TR><TR>
<TD>使用者密码:</TD>
<TD><Input TYPE="PASSWORD" NAME="Password" size="10"></TD>
</TR><TR>
<TD>地址:</TD>
<TD><INPUT TYPE="TEXT" NAME="Address" size="30"></TD>
</TR><TR>
<TD>电话:</TD>
<TD><INPUT TYPE="TEXT" NAME="Phone" size="12"></TD>
</TR><TR>
<TD>电子邮件地址:</TD>
<TD><INPUT TYPE="TEXT" NAME="Email" size="20"></TD>
</TR><TR>
<TD colspan=2 align=center><INPUT TYPE="SUBMIT" value="订阅电子报"></TD>
</TR>
</TABLE><HR>
</FORM></CENTER>
</BODY></HTML>
代码:
 
"ADODB.Connection",用法错了, 不须OPEN 之后才EXECUTE, 可以直接EXECUTE, 只要加上strDBDSN就可以了!
 
我想给你段代码你参考一下吧,我用过好多程序都没问题。
可能是你的记录集连接不对,你可以仿照联一下
set conn=Server.CreateObject("ADODB.Connection")
conn.open"listserver","heyun","1234"( 打开数据库)
strsql="select country,mem_month,cl,bz,pe,b.yc_num as num from opec_pe A join opec_year_product B on a.country=b.contry where substring(a.mem_month,1,4)='"&amp;d1&amp;"' and substring(a.mem_month,5,2)='"&amp;d2&amp;"' order by country"
str="select cl from opec_pe where substring(mem_month,1,4)='"&amp;d10&amp;"' and substring(mem_month,5,2)='"&amp;d9&amp;"' order by country"
set rs=Server.CreateObject("ADODB.Recordset")
set rs1=server.CreateObject("ADODB.Recordset")
rs1.open str,conn,3,3
rs.Open strSQL,conn,3,3
用插入改为 execute
 
luban说的对,
还有,你看看是不是权限有问题?
 
各位大虾还是就事论事吧,上面一段代码到底哪里要改??
我本来asp就刚学,你们再给我一段代码不等于要我又
重新调试一个新的吗??能不能一针见血,告诉我那段代码
到底哪里要改动一下??
 
objDBConn.Open strDBDSN 是错误的,去掉就应该OK
 
看来你很喜欢【极具挑战性】这个词哦! :)
 
NO!没有大家想象的那么简单吧!我去掉了那句代码,可是
问题依旧呀,依然没有在sql2000里看见我所希望看见的
数据!人世间最痛苦的事莫过与此呀!!
 
SQL2000好像还要COMMIT一下数据,才能真正的将数据添加到数据库中。
大型数据库都是这样的。
具体用什么语句我也忘了,好久没有用ASP了。[8D]
 
是不是应该在写连接字符串前加上下面一句
Set strDBDSN = Server.CreateObject("ADODB.Connection")
 
你上面的东西是都在一个文件的吗,下半部分的是输入密码什么的,提交到SQLSubscribeMail.asp
SQLSubscribeMail.asp应该是另外一个文件啊,上班部分的asp脚本放在SQLSubscribeMail.asp
就差不多
 
各位也都前绿几穷了吗?我还是搞不定!哪个好心人能帮我调试出呀, 5~~~~~~~~~~~~~~~~~~~~~
 
【各位也都前绿几穷了吗?】这样的话你也说得出口?
 
那我该怎么说呀,大虾帮帮我!
 
大哥,在
strSQL = strSQL &amp;
strPhone &amp;
"')"

和 Set objDBConn = Server.CreateObject("ADODB.Connection")
中间插入
response.write(strSQL)
response.end
然后把打印出来的sql语句到sql2000中直接运行,再看看。
有时数据库中对某个table加了限制或trigger,也会产生这种结果。
建议你用这种方法试试看...
 
各位!!问题终于搞清!!程序没有一点问题,问题出在odbc配置上!我是在用户dsn设置
的,应该是在系统dsn里设置的!麻烦大家了!!分数大家都有份!!下次记得还来帮帮我!
 
多人接受答案了。
 
后退
顶部