asp.net 登陆问题

问题:登陆提示"ExecuteScalar: CommandText 属性尚未初始化"
login.aspx.vb:
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim userName As String
Dim userPwd As String
Dim userStyle As String
userName = Request.Form.Get("userName").ToString()
userPwd = Request.Form.Get("userPwd").ToString()
userStyle = Request.Form.Get("selectStyle").ToString
Dim con As New System.Data.SqlClient.SqlConnection("server=localhost;database=data; integrated security=sspi;")
con.Open()
Dim sql As String
' Try
Select Case userStyle
Case "学生"
sql = "select count(*) from stu where name='" + userName + "' and pwd='" + userPwd + "'"""
Case "教师"
sql = "select count(*) from teacher where name='" + userName + "' and pwd='" + userPwd + "'"
Case "管理员"
sql = "select count(*) from admin where name='" + userName + "' and pwd='" + userPwd + "'"
End Select
Dim cmd As New System.Data.SqlClient.SqlCommand(sql, con)
Dim count As Int32
count = Convert.ToInt32(cmd.ExecuteScalar())'提示错误行
If (count > 0) Then
Response.Redirect("main.aspx?userName=" + userName)
Else
Response.Redirect("loginfail.htm")
End If

'Catch ex As Exception
'MsgBox(ex.Message, , "错误信息")
'End Try

End Sub
End Class
我是通过login.html提交到login.aspx的,我初学,不知道哪里错了,哪位高手帮看看啊!

这个再明显不过了,肯定是userStyle里没有select的种类,所以sql文根本就没东西,怎么可能查询得到数据呢。。。你debug下,看看是不是userStyle里根本就没传数据过来。
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-05-06
你这是asp,不是asp.net
第2个回答  2009-05-06
我不熟vb在c#中request不能tostring
第3个回答  2009-05-06
我想应该是SqlCommand对象实例化的时候没有初始化T-SQL语句吧。
第4个回答  2009-05-06
我是c#的 但是基本能看懂你的登录代码

问题的提示 一定是告诉你命令中的sql没有初始化

对vb不了解,估计是选择语句有错误,没有对sql赋值
c#里面的选择语句在case后还有有break跳出选择,不知道vb有没有类似的,是不是需要跳出选择语句
第5个回答  2009-05-07
楼上分析正确,因为userStyle 值不正确,不在case范围,所以sql值为null,SqlCommand(sql, con) 的第一个参数就是CommandText,为null所以没有初始化.

在End Select 前加:

Case Else
Response.Write("<script language=javascript>")
Response.Write("window.alert('用户类型错误! ');")
Response.Write("</script>")
Exit Sub

asp.net登陆问题
1,在IIS中设置站点为windows 集成认证,在站点属性里设置。2,在你的站点web.config中设置authentication为windows

asp.net无法打开用户默认数据库。登录失败。
无法打开用户默认数据库,登录失败,这是因为登录帐户的默认数据库被删除。解决方案:用windows身份模式进入,选择“安全性”—”登录名”——“sa”,在sa上右击,弹出如图窗口,设置密码,然后把默认数据库选择为master。 www.2cto.com 断开windows身份连接,再用sqlserver身份登录,即可。还有可能在您再次...

ASP.net(C#)的登陆问题(简单)
1.在登陆按扭的程序中,成功则写入session变量。如成功则=1,用户名密码错误则=0。2.在http:\/\/localhost\/LoginTest\/main.aspx页面判断存入的session变量是1则正常执行,否则跳转到http:\/\/localhost\/LoginTest\/Fail.aspx

asp.net登陆代码问题
1、检查输入时是否有空格,数据库中存储的是否有空格,2、检查数据库存储的密码是否是加密后的,3、你这样直接拼接sql语句,存在SQL注入的安全漏洞!!!

我的ASP.NET程序登录管理后台又自动退出后台,怎么回事啊?
我也碰到过这样的问题,有以下三点可以解决 一、原因是IIS应用池设置不当,因有的程序很吃内存,所以对于这样子的情况,IIS应用池的优化一定要注意,不能设置内存回收.OK.二、开启ASP.NET State Service服务:选择管理工具->服务,找到ASP.NET State Service,点开后选择启动,并将启动类型设为自动。三、...

asp.net登录问题
SqlCommand cmd = new SqlCommand("select * from users where username = '" + TextBox1.Text + "' and pwd ='" + TextBox2.Text + "'", conn);username 在数据库中应该是varchar或nvarchar这是字符型,在用Sql查询时字符应该加上单引号'' 。还有你返回登陆信息用SqlDataAdapter太影响性能了...

asp.net登陆问题
FormsAuthentication.RedirectFromLoginPage(username.Text, false);楼主的这个方法将经过身份验证的用户重定向回最初请求的 URL 或默认 URL。所以会自动跳转! 答案补充 web.config中设置默认页 如:<system.web> <authentication mode="Forms"> <forms loginUrl="~\/Login.aspx" defaultUrl="~\/Default...

asp.net登录代码问题(高分在线等,急)
其次,你的循环语句显示正确后没有中断而是继续比较下一行,也就是说,如果登录的用户不是最后一个用户(此时恰好显示正确),那么始终显示的是错误。所以:1.要么改SQL语句,对查询的结果使用用户名和密码进行过滤 2.或者,在 Label1.Text="正确!";下面加一行 break;3.二楼说的有一点小错误,就是...

asp.net 欢迎登录用户问题
思路,如果用户登录成功(该用户在数据库中存在),拿着当前登陆的用户的ID在你说的存放用户名字的那个表查询一遍,并用后台的代码将该提示信息输出出来ClientScript.RegisterClientScriptBlock(GetType(), "", "alert('你好,'"+查询的结果+")");...

Asp.net 登入问题
第一个情况不用Session而用ViewState保存登录信息就可以了 第二个情况在B页面里加上 window.history.forward();就能防止后退,但这只是一般的防后退,你可以设一个session值判断,在A页面载入时清空Session,A页面登录成功后给这个session赋值,在B页面判断这个值是否为空 ...

相似回答
大家正在搜