登录和语法错误

时间:2009-06-28 21:23:32

标签: asp.net vb.net

我尝试使用asp.net 3.5和sql server 2005进行登录我创建了一个数据集并执行此代码 但是这里的代码中缺少一些代码

Protected Sub btnlogin_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnlogin.Click

    Dim LoginTable As New ClassSet.UsersDataTable
    Dim LoginAdapter As New ClassSetTableAdapters.UsersTableAdapter

    LoginAdapter.FillBylogin(LoginTable, txtuser.Text, txtpass.Text)

    Dim dr As DataRow() = LoginTable.Select("Name= ' " & txtuser.Text & " 'Password= ' " & txtpass.Text & " '")

    If dr.Length > 0 Then
        Response.Redirect("MyClassifieds.aspx")
    Else
        Label1.Text = "Invalid UserName or Password"
    End If

End Sub

它说在第5行的密码='“& txtpass.Text之后有些遗漏但我无法得到任何人可以帮助的错过

3 个答案:

答案 0 :(得分:2)

您缺少名称和密码

之间的“AND”语句
Dim dr As DataRow() = LoginTable.Select("Name= '" & txtuser.Text & "' AND Password= '" & txtpass.Text & "'")

答案 1 :(得分:2)

你错过了一个AND

Dim dr As DataRow()= LoginTable.Select(“Name ='”& txtuser.Text&“'AND Password ='”& txtpass.Text&“'”)

我怀疑你是否想要空格。

但是你也有问题,SQL注入。你真的不想像这样构建动态SQL,你必须 parameterise所有的查询。

答案 2 :(得分:-1)

为什么在通过数据适配器使用用户名和密码填充刚刚填写的登录表时运行select来验证用户名和密码?当然你可以检查它的长度。此外,如果您的登录系统中存在任何安全性,则密码将不会以纯文本格式存储,因此适配器填充方法应该采用某种方式进行散列以找到正确的密码以返回数据表。