日期:2014-05-18  浏览次数:20397 次

调试问题,闷在家里三天三夜都没有搞明白,高人指点
我写的一个登陆简单代码,用的是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)