Vb.net的SQL登录问题

时间:2014-12-17 22:20:52

标签: sql-server vb.net

所以我一直试图弄清楚为什么我的登录系统没有工作。是否有一个逻辑教程在线我可以看到有人制作一个?或者你们可以帮我解决这个问题吗? :(对不起,第一次在Vb中使用SQL。顺便说一句,它是一个远程托管的SQL服务器。

代码:

Imports MySql.Data.MySqlClient
Imports System.Data.SqlClient

Public Class Form1
    Dim conn As MySqlConnection
    Private Sub ReconButton1_Click(sender As System.Object, e As System.EventArgs) Handles ReconButton1.Click
        Dim conn As MySqlConnection

        conn = New MySqlConnection()
        conn.ConnectionString = "server=Host; user id=User; password=Pass; database=DB"
        'see if connection failed
       Try
           conn.Open()

       Catch myerror As MySqlException
           MsgBox("Error connecting to server", MsgBoxStyle.Exclamation, "Error")
       End Try
       'sql query
        Dim myAdapter As New MySqlDataAdapter

        Dim sqlquery = "SELECT [] FROM users WHERE username = '" + TxtBox1.Text + "' AND password = '" + TxtBox2.Text + "'"
        Dim myCommand As New MySqlCommand()
        myCommand.Connection = conn
        myCommand.CommandText = sqlquery
        'start query
       myAdapter.SelectCommand = myCommand
`It highlights myAdapter.SelectCommand = myCommand`
       Dim mydata As MySqlDataReader
       mydata = myCommand.ExecuteReader()
       'see if user exist
        If mydata.HasRows = 0 Then MsgBox("Invalid Login!") Else MsgBox("Login Accepted!")
        Welcome.Show()
        Me.Close()
    End Sub

1 个答案:

答案 0 :(得分:0)

我注意到了一些事情......

  1. 始终使用参数,不要跳过它们。
  2. 您的连接显然是错误的。
  3. 你说SQL有问题,但是你的代码使用MySQL名称空间,这对SQL来说是错误的,它们是不同的。如果它的SQL那么你需要使用SqlConnection命名空间。您决定使用什么DBMS ......
  4. 此外你的捕获仍然会抛出异常。如果你没有连接,那么你不能像你那样做另一个查询。目的是捕获您所做的异常,然后再次尝试查询,这将会炸弹。
  5. 现在你有几个选择......

    1. 使用VPN连接像Hamachi一样。这将为您提供用于连接的唯一IP。
    2. 确保您的服务器确实可以访问。如果您无法访问电脑以获取IP,您应该可以在服务器的管理区域中获取此信息。
    3. 在线连接字符串与本地连接字符串没有区别。只需将serverip部件替换为“在线”服务器的公共IP地址即可。此外,如果它是默认实例,那么只有ip会为你做,但如果它是用户定义的实例,那么你也必须提到ip \ instance名称。

      例如replace:server = Host ... To this ...

       server=124.553.546.65 'Your server IP, this is only an example