【问题标题】:Connecting to database and reading data in asp.net在asp.net中连接数据库并读取数据
【发布时间】:2014-06-02 17:53:38
【问题描述】:

我在这里做错了什么?我收到一个错误:

= 附近的语法不正确

在这行代码上:

Dim SqlDataReader As SqlClient.SqlDataReader = SQLCommad.ExecuteReader()

我的代码:

Dim Username = TUserName.Text
Dim Password = TPassword.Text

Dim SqlConnection = New SqlClient.SqlConnection(My.Settings.DBConnection.ToString)
Dim SQLCommand = New SqlClient.SqlCommand("select * from " + My.Settings.TableName.ToString + "Where EmpID = " + Username, SqlConnection)
SqlConnection.Open()

Dim SqlDataReader As SqlClient.SqlDataReader = SQLCommand.ExecuteReader

While (SqlDataReader.Read)
      If Username = SqlDataReader(1).ToString And Password = SqlDataReader(20).ToString Then
         If eEncrypt(Username, Password) Then
            MsgBox("You are NOT logged in")
         Else
            MsgBox("You are logged in")
         End If
      End If
End While

SqlConnection.Close()

【问题讨论】:

  • 你能用@Horaciux 代码修复你的帖子,这会导致exactly same 错误。
  • Username 是一个文本,你不能在 SQL 上用 "``" 扭曲它,除了你的代码对 SQL 注入开放的错误。
  • MsgBox 也不适用于 asp.net
  • 这将修复错误,但您需要使用 sql 参数 New SqlClient.SqlCommand("select * from " + My.Settings.TableName.ToString + " Where EmpID = '" + Username + "'", SqlConnection) (在 where 添加 ` 和额外空格)

标签: html css asp.net sql-server


【解决方案1】:

这应该可以,看看如何添加参数

Dim Username = TUserName.Text
Dim Password = TPassword.Text

Dim SqlConnection = New SqlClient.SqlConnection(My.Settings.DBConnection.ToString)
Dim SQLCommand = New SqlClient.SqlCommand("select * from " + My.Settings.TableName.ToString + "Where EmpID = @Username", SqlConnection)

SQLCommand.Parameters.AddWithValue("@Username", Username)
SqlConnection.Open()

Dim SqlDataReader As SqlClient.SqlDataReader = SQLCommand.ExecuteReader()

While (SqlDataReader.Read)
      If Username = SqlDataReader(1).ToString And Password = SqlDataReader(20).ToString Then
         If eEncrypt(Username, Password) Then
            MsgBox("You are NOT logged in")
         Else
            MsgBox("You are logged in")
         End If
      End If
End While

SqlConnection.Close()

【讨论】:

    【解决方案2】:

    你错过了括号

    Dim SqlDataReader As SqlClient.SqlDataReader = SQLCommad.ExecuteReader()
    

    【讨论】:

    • 是的,完全一样
    • @PieterdeVries 我现在很困惑。是编译前出错还是运行时出错?
    【解决方案3】:

    这行代码

    Dim SQLCommand = New SqlClient.SqlCommand("select * from " + My.Settings.TableName.ToString + "Where EmpID = " + Username, SqlConnection)

    应该是

    Dim SQLCommand = New SqlClient.SqlCommand("select * from " + My.Settings.TableName.ToString + "Where EmpID = '" + Username + "'", SqlConnection)

    从手机发布。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多