geniusjoy 2007-12-13 08:35
11行改成这样就行了
rs.Open sql, conn, 1, 3, adCmdText
请问这是什么原因会这样呢?:)
麻烦管理员解释一下,我是菜鸟
Nothing 2007-12-14 12:17
基本的recordset操作参数,你找本书看看
Recordset.Open参数说明
语法:
recordset.Open Source, ActiveConnection, CursorType, LockType, Options
参数说明:
Source 可选,变体型,计算 Command 对象的变量名、SQL 语句、表名、存储过程调用或持久 Recordset 文件名。 ActiveConnection 可选。变体型,计算有效 Connection 对象变量名;或字符串,包含 ConnectionString 参数。
CursorType 可选,CursorTypeEnum 值,确定提供者打开 Recordset 时应该使用的游标类型。
可为下列常量之一(参阅 CursorType 属性可获得这些设置的定义)。
值 常量 说明
--- ------------------- -----------------------
0 AdOpenForwardOnly 默认值)打开仅向前类型游标。
1 AdOpenKeyset 打开键集类型游标。
2 AdOpenDynamic 打开动态类型游标。
3 AdOpenStatic 打开静态类型游标。
LockType 可选。确定提供者打开 Recordset 时应该使用的锁定(并发)类型的 LockTypeEnum 值,可为下列常量之一(参见 LockType 属性可获得详细信息)。
值 常量 说明
--- -------------------------------- -----------------------
1 AdLockReadOnly (默认值)只读 — 不能改变数据。
2 AdLockPessimistic 保守式锁定,提供者完成确保成功编辑记录所需的工作,通常通过在编辑时立即锁定数据源的记录。
3 AdLockOptimistic 开放式锁定(逐个) — 提供者使用开放式锁定,只在调用Update 方法时才锁定记录。
4 AdLockBatchOptimistic 开放式批更新—用于批更新模式(与立即更新模式相对)。
geniusjoy 2007-12-17 08:34
数据库更新问题
我数据库中有AA用户名在添加页中添加AA用户名不成功,这里是正常的.
但我在添加页面添加一个新的用户叫"NN"到数据库中,添加成功后,我再添加一个用户又叫NN的,竟然又添加成功了,是不是要更新一下数据库阿?源代码在下面
<!--#include file="conn.asp"-->
<%
sql="select loginuser from account"
set rs=server.CreateObject("adodb.recordset")
rs.open sql,conn,1,3,adcmdtext
%>
<%
dim rs
if request.Form("txtuser")<>"" and request.Form("txtpwd")<>"" then
if rs("loginuser")<>request.Form("txtuser") then
strsql="insert into account(loginuser,userpassword) values('"& trim(request("txtuser")) &"','"& trim(request("txtpwd")) &"')"
rs=conn.execute(strsql)
response.Write "注册成功"
else
response.Write "用户名已存在!,<a href=regist.asp>返回</a>"
end if
else
response.Write "请输入用户名或密码!"
end if
conn.close
set conn=nothing
%>
Nothing 2007-12-17 16:17
你在添加新用户的时间,先查看一下用户表里有没有同名用户,有的话提示一下
sql="select loginuser from account"
应当改成
sql="select loginuser from account where username='"& request.Form("txtuser") &"'"
netice 2007-12-17 22:01
:L Nothing比我有耐心啊。。当老师去吧,会出好学生的。。 :lol
代码要写的漂亮点,,不然别人都不愿看怎么帮你修改啊,,
最好多加注释,注意多用TAB。。。。
现在我们这要求1半代码1半注释的,简单的也要注释(变量强烈要求注释)
建议写VB和ASP是要求(变量强制声明)下。。。
geniusjoy 2007-12-17 22:51
改了这个sql="select loginuser from account where username='"& request.Form("txtuser") &"'"我添加用户时出错哦!!
我下面已经有判断数据库中的用户名是不是等于输入的用户名了if rs("loginuser")<>request.Form("txtuser") then
[[i] 本帖最后由 geniusjoy 于 2007-12-17 22:55 编辑 [/i]]
Nothing 2007-12-18 11:41
那个我只是一个示例,具体的还要看你的数据库字段
sql="select loginuser from account where username='"& request.Form("txtuser") &"'"
我只是将loginuser改成了username
你就不能仔细看看?
还有,if rs("loginuser")<>request.Form("txtuser") then 这个判断没有用,只是取数据库里第一条的数据。
我想问一下,你是不是一点基础都没有,如果这样的话,建议你还是买一本书,从头到尾看一遍,感觉你连编程的感觉都没有。
ASP除了编程的基础、HTML、JS外,还需要学习简单的SQL语句、数据库知识。
学编程数据库是最基本的东西。
geniusjoy 2007-12-18 15:32
我什么都会一点,就是不精通,现在就先精通一样.我是改了
sql="select loginuser from account where loginuser='"& request.Form("txtuser") &"'"
别以为我这么傻照抄下去啊.
geniusjoy 2007-12-18 16:06
已经成功了.多谢管理员提醒~~!万分感谢,
<%
sql="select loginuser from account where loginuser='"&request.Form("txtuser")&"'"
set rs=server.CreateObject("adodb.recordset")
rs.open sql,conn,1,3,adcmdtext
%>
<%
if request.Form("txtuser")<>"" and request.Form("txtpwd")<>"" then
strsql="insert into account(loginuser,userpassword) values('"& trim(request("txtuser")) &"','"& trim(request("txtpwd")) &"')"
If Not conn.Execute(sql).Eof then
response.Write"用户名已存在!"
else
rs=conn.execute(strsql)
response.Write "注册成功"
end if
else
response.Write "请输入用户名或密码!"
end if
conn.close
set conn=nothing
%>
这样写就可以了.