一个登录页面,为什么总是先弹出错误提示,然后才验证用户名密码?郁闷之极~~~~~~~~

liangfengxx 2005-05-07 08:15:43
一个实现管理员登录的程序,应该是先判断用户名和密码,然后,如果错误的话再弹出错误提示。但是我写的程序总是先弹出错误提示(不管密码正不正确),再验证用户名和密码,真是郁闷!!!

程序的部分代码:
private sub check_name()
Dim sqlConn As New SqlConnection("...")
Dim sqlCmd As New SqlCommand
sqlCmd.Connection = sqlConn
sqlCmd.CommandText = "pro_login" //这是我写的存储过程名
sqlCmd.CommandType = CommandType.StoredProcedure
sqlConn.Open()
//以下是参数定义
sqlCmd.Parameters.Add(New SqlParameter("@name", SqlDbType.VarChar, 20))
sqlCmd.Parameters("@name").Value = TextBox1.Text
sqlCmd.Parameters.Add(New SqlParameter("@pswd", SqlDbType.VarChar, 32))
sqlCmd.Parameters("@pswd").Value = TextBox2.Text
定义一个DataReader//
Dim sqlReader As SqlDataReader = sqlCmd.ExecuteReader
If sqlReader.Read Then
Session("user_name") = TextBox1.Text
Response.Redirect("manage.aspx")
ElseIf Not sqlReader.Read Then
submit.Attributes("onclick") = "javascript:alert('用户名或密码不正确,请重新输入')"
submit.Attributes.Add("onclick", "return alert('用户名或密码不正确,请重新输入')")
TextBox1.Text = ""
TextBox2.Text = ""
End If
sqlConn.Close()
sqlConn = Nothing
end sub

我没搞懂程序哪点有错?但为什么总是要先弹出错误提示呢?高人,帮我一下啊,谢谢!!!
...全文
221 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
ycy589 2005-05-09
  • 打赏
  • 举报
回复
submit.Attributes("onclick") = "javascript:alert('用户名或密码不正确,请重新输入')"
submit.Attributes.Add("onclick", "return alert('用户名或密码不正确,请重新输入')")

这两句看不懂!!!
liangfengxx 2005-05-08
  • 打赏
  • 举报
回复
谢谢各位的指点!
不过 coldpanth(云之崖) 兄的方法好象不行
我试过了,不能达到目的,是不是还要导入什么东东?
coldpanth 2005-05-08
  • 打赏
  • 举报
回复
submit.Attributes.Add("onclick", "return alert('用户名或密码不正确,请重新输入')")

你这样当然会先弹alert,因为这个onclick是在button提交之前执行的js.

把那个删了,改成这样

if 没通过验证
Response.Write("<SCRIPT language='vbscript'>alert('用户名或密码不正确,请重新输入')</SCRIPT>")
else
通过验证的操作

xzq686 2005-05-08
  • 打赏
  • 举报
回复
下面的试试。你的if,elseif没用,有点画蛇添足。。if,else就够了

private sub check_name()
Dim sqlConn As New SqlConnection("...")
Dim sqlCmd As New SqlCommand
sqlCmd.Connection = sqlConn
sqlCmd.CommandText = "pro_login" //这是我写的存储过程名
sqlCmd.CommandType = CommandType.StoredProcedure
sqlConn.Open()
//以下是参数定义
sqlCmd.Parameters.Add(New SqlParameter("@name", SqlDbType.VarChar, 20))
sqlCmd.Parameters("@name").Value = TextBox1.Text
sqlCmd.Parameters.Add(New SqlParameter("@pswd", SqlDbType.VarChar, 32))
sqlCmd.Parameters("@pswd").Value = TextBox2.Text
定义一个DataReader//
Dim sqlReader As SqlDataReader = sqlCmd.ExecuteReader
If sqlReader.Read Then
Session("user_name") = TextBox1.Text
Response.Redirect("manage.aspx")
Else
Response.Write("<SCRIPT language='vbscript'>alert('用户名或密码不正确,请重新输入')</SCRIPT>")
TextBox1.Text = ""
TextBox2.Text = ""
End If
sqlConn.Close()
sqlConn = Nothing
end sub
wangrenda 2005-05-07
  • 打赏
  • 举报
回复
写的好乱
二者有什么不同
他写的是直接输出alert,而你的写法是给submit控件加载了一个属性.需要onclick才能触发.
而且按照你的写法好像不能触发.
ILearnCSharp 2005-05-07
  • 打赏
  • 举报
回复
up
flyye_cs 2005-05-07
  • 打赏
  • 举报
回复
你那种方法会给输入HTML页面中的submit添加固定的js脚本,只要出错一次,alert就自动添到Click事件中

而后台控制Respnose输出流的话就不会产生上面的问题
liangfengxx 2005-05-07
  • 打赏
  • 举报
回复
俺初学,麻烦讲一下断点调试是怎么回事,谢谢!
xiao_haozi 2005-05-07
  • 打赏
  • 举报
回复
用断点跟一下老,看看先执行的是那句,想想怎么会跳过去的,
帮你顶一下!!
liangfengxx 2005-05-07
  • 打赏
  • 举报
回复
up
艺术家 2005-05-07
  • 打赏
  • 举报
回复
这里是.NET高级群,在内的都是有一定水平的成员,请大家一起来探讨! 3945892
liangfengxx 2005-05-07
  • 打赏
  • 举报
回复
If Not sqlReader.Read 可以直接Response.Write("<script>window.alert('***')</script>");
------------------------------------------------------------------------------
这样好像解决问题了,不过能说一下为什么吗?
我用submit.Attributes.Add("onclick", "return alert('用户名或密码不正确,请重新输入')")为什么就不行?
这两种弹出对话框的方法有什么异同呢?
谢谢!
flyye_cs 2005-05-07
  • 打赏
  • 举报
回复
If Not sqlReader.Read 可以直接Response.Write("<script>window.alert('***')</script>");
liangfengxx 2005-05-07
  • 打赏
  • 举报
回复
补充一点:我的数据库连接没有任何问题,存储过程也没问题!

我希望知道为什么会这样。分不是问题,不够可以再加~~~~~~~~~~

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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