【问题标题】:Exception when trying to fill DataTable with SqlDataAdapter尝试使用 SqlDataAdapter 填充 DataTable 时出现异常
【发布时间】:2017-02-07 15:59:58
【问题描述】:

我正在尝试在 VB.NET 中创建一个 SQL 登录表单,但它并没有真正起作用,表单正在加载,但是当我单击登录时,它只是崩溃并出现异常。谁能告诉我如何解决这个问题?

代码:

Imports System.Data.SqlClient

Public Class Form1

Private Sub BTN_LOGIN_Click(sender As Object, e As EventArgs) Handles     BTN_LOGIN.Click

    Dim connection As New SqlConnection("Server= (localdb)\MSSQLLocalDB; Database = TestDB; Integrated Security = true")

    Dim command As New SqlCommand("select * from Table where Username = @username and Password = @password", connection)

    Dim reg As New SqlCommand("INSERT INTO Table (username, password) VALUES (@username, @password)")

    command.Parameters.Add("@username", SqlDbType.VarChar).Value = TextBoxUsername.Text
    command.Parameters.Add("@password", SqlDbType.VarChar).Value = TextBoxPassword.Text

    Dim adapter As New SqlDataAdapter(command)

    Dim data As New DataTable()

    adapter.Fill(data)

    adapter.Dispose()

    If data.Rows.Count() <= 0 Then

        MessageBox.Show("Username Or Password Are Invalid")


    Else

        MessageBox.Show("Login Successfully")

        Dim frm As New Form2()

        Me.Hide()

        frm.Show()

    End If

End Sub

Private Sub BTN_CANCEL_Click(sender As Object, e As EventArgs) Handles BTN_CANCEL.Click

    Me.Close()

End Sub
End Class

桌子也很好。只是不要谈论桌子

【问题讨论】:

  • 什么异常??
  • 点击异常。
  • 与你的问题无关,你不应该存储纯密码,你应该散列,查一下(别忘了盐和胡椒)
  • 您的表名为Table?我希望这只是作为一个例子?该错误意味着 SQL 本身有问题...

标签: sql sql-server vb.net


【解决方案1】:

异常说明:“关键字 Table 附近的语法不正确”。表名真的是Table吗?那是一个保留关键字。如果它是您应该考虑更改的名称。但是如果你必须使用这个名字,你需要将它嵌入到方格中:

Dim command As New SqlCommand("SELECT * FROM [Table] where Username = @username and Password = @password", connection)

【讨论】:

  • 是的,这就是问题所在。登录确实需要很长时间,但谢谢!
猜你喜欢
  • 2017-02-07
  • 2012-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-21
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多