ASP表单提交数据库时遇到的问题该怎么办
在用ASP创建表单的时候,我们经常会碰到各种小坑,比如提示“800a0bb9”这样的错误码,很多时候是因为对象定义不准确。比如一个MM_editCmd本来应该是ADODB.Command类型,结果弄成了ADODB.Connection,嘿,这就错了。还有一些细节,比如字符串变量“MM_cao_STRING”第9行的问题,都得仔细检查。
另外,ASP操作数据库,尤其是access数据库的时候,写代码得小心,数据库连接字符串要正确。通常,代码大致是这样:
Set conn=Server.CreateObject("ADODB.Connection")
ConnString="PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("数据库所在地址")
conn.open ConnString
然后慢慢往执行插入语句走,比如:
sql="insert into 数据表(字段1,字段2) values ('值1','值2')"
conn.execute sql
要是你不熟悉ASP,得多花点时间才能弄明白这些细节。

如何用ASP实现通讯录的表单提交和多行数据写入
先来说说通讯录的做法哈,肯定要做一个提交表单的页面,用户填写信息后提交到数据库。然后还得做一个显示页面,从数据库里把通讯录给读出来。是不是听着就跟玩游戏一样?其实你只要按照步骤慢慢来,没那么复杂。
-
提交表单:写个表单页面,输入姓名、电话啥的,提交时用POST传送数据。
-
多行数据批量写入数据库:比如你有多个相同name的输入框,想一次性提交。方法就是用For循环遍历Request.Form得到的值,比如:
For i = 1 To Request.Form("UserName").Count
Rs.AddNew
Rs("UserName") = Trim(Request.Form("UserName")(i))
Rs.Update
Next
不过还可以先用逗号分割字符串,然后在循环里写入,挺灵活的。
- 必填项判断:通讯录里联系人和电话肯定不能空,页面要提醒用户!用点小JavaScript,像这样:
if($("#contact").val()=="" || $("#telephone").val()=="") {
alert("联系人和电话不能为空哦!");
return false;
}
- 登录验证:提交表单后,判断用户名和密码别闹了都能登录?那肯定有bug啦。逻辑一般是:
If Not rs.EOF And Not rs.BOF Then
If Request("f_code") = rs("a_code") Then
Response.Redirect "/5-1/admin/admin_user.asp"
Else
Response.Write "密码错误!"
End If
End If
千万注意字段名别写错,f_code这个字段得换成密码字段名。
最后说句,处理多个相同name的表单元素时,可以用JavaScript先获取值,像:
var a = $("[name=kkk]").eq(0).val();
var b = $("[name=kkk]").eq(1).val();
如果你喜欢,也能用.split()方法把接收到的值拆分开来处理,这样比较灵活。

相关问题解答
-
ASP表单提交时提示800a0bb9是什么原因啊?
哎,这个错误常见得很,一般是对象定义搞错了。比如你明明想用ADODB.Command,结果写成了ADODB.Connection,系统就懵了。建议检查定义,第9行变量或对象是不是写错了,特别是字符串拼接,逗号、引号都得确认,别小看这些细节!改好了,问题很可能烟消云散啦。 -
多行表单数据如何一次性写进数据库更加简单?
说真的,搞点循环遍历Request.Form的数据是最舒服的方式,没别的花里胡哨。你可以用For循环把每条数据加一条记录,不用担心一个个写,效率超高。或者先用逗号分割字符串,然后遍历写入,这招儿也常用。只要逻辑清晰,一切都好办! -
为什么我在ASP里写了登录验证却不管用户名密码都能进?
哈,这个是代码判断逻辑出问题啦!你的if语句得确保先判断数据库有没有记录(EOF、BOF都要看),然后再比对密码,别写反了。还有,字段名字一定要对,错一个名字全白费。修改代码后,保证不匹配密码绝对不放行! -
如何用JavaScript简单判断表单必填项没填?
简单得不得了!用jQuery或者原生JS去拿值,if条件判断是不是空,空了就alert提醒,是不是很贴心?比如:
if($("#contact").val()=="" || $("#phone").val()=="") {
alert("联系人和电话不能为空!");
return false;
}
这么一来,用户体验瞬间好几倍,上手快,老少皆宜,肯定没错!
新增评论