读书人

调试有关问题,闷在家里三天三夜都没有

发布时间: 2012-01-06 22:55:18 作者: rapoo

调试问题,闷在家里三天三夜都没有搞明白,高人指点
我写的一个登陆简单代码,用的是SQL SERVERE数据库
代码如下
Dim con As New SqlConnection
con.ConnectionString = "server=BT-BBT;uid=adoxq;pwd=86221xq;database=tz"
con.Open()

Dim str As String = "select * from rigester where user=" + USER.Text + " and " + PWD.Text + ""
Dim cmd As New SqlCommand(str, con)
Dim dr As SqlDataReader = cmd.ExecuteReader


If dr.Read Then
Response.Redirect("rigester.aspx")
Else
Response.Write("<script languge='javascript'> alert('登录失败');window.top.location.href='Default.aspx';</script>;return")

End If

当我输入登陆的用户名和密码后,点击提交按钮后就提示出错,具体如下



“/web”应用程序中的服务器错误。
--------------------------------------------

第 1 行: ' 1' 附近有语法错误。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.SqlClient.SqlException: 第 1 行: ' 1' 附近有语法错误。

源错误:


行 45: Dim str As String = "select * from rigester where user='" + USER.Text + "' and' " + PED.Text + "'"
行 46: Dim cmd As New SqlCommand(str, con)
行 47: Dim dr As SqlDataReader = cmd.ExecuteReader
行 48:
行 49:


源文件: G:\Web\website\web\login.aspx.vb 行: 47

堆栈跟踪:


[SqlException: 第 1 行: ' 1' 附近有语法错误。]
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream)
System.Data.SqlClient.SqlCommand.ExecuteReader()
web.WebForm1.Button1_Click(Object sender, EventArgs e) in G:\Web\website\web\login.aspx.vb:47
System.Web.UI.WebControls.Button.OnClick(EventArgs e)
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain()




--------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.573; ASP.NET 版本:1.1.4322.573

[解决办法]
Dim str As String = "select * from rigester where user='" + USER.Text + "' and pwd='" + PWD.Text + "'"
and 后面是密码子段名(pwd=)
[解决办法]
and 前后加空格
[解决办法]
字符串要单引号
要防注
[解决办法]
"select * from rigester where user= '" + USER.Text + " 'and pwd =' " + PWD.Text + "'"

试试这个select语句行不!!你and后面都没有字段!!和数据库中的哪个比呢??
[解决办法]
四楼和三楼的同志解题是正确的,这种是低级错误。以后别再犯了。~~
[解决办法]
"select * from rigester where user='"+ USER.Text +"' and pwd='" + PWD.Text +"'"
[解决办法]
Dim str As String = "select * from rigester where user= '" + USER.Text + " ' and ' " + PED.Text + " '"
行 46: Dim cmd As New SqlCommand(str, con)


行 47: Dim dr As SqlDataReader = cmd.ExecuteReader
and 的前后加一个空格试试
"select * from rigester where user= '" + USER.Text + " ' and ' " + PED.Text + " '"
你可能调试一下,将生成的sql语句,COPY到查询分析器中运行看是否是语句有问题

[解决办法]
这种问题很容易改。
SqlException,基本上就是sql语句错误。
你跟踪以下,把sql贴出来,看一下,就知道那里错了

"select * from rigester where user=" + USER.Text + " and " + PWD.Text + ""

你把变量换成常量看看,你这个sql变成了什么
[解决办法]
还是要自己在监视器里,看看你的SQL语句到底写成什么样子了,应该是写的样式问题。
[解决办法]
"select * from rigester where [user]='" + USER.Text + "' and pwd ='" + PWD.Text + "'"

读书人网 >asp.net

热点推荐