首页 > 解决方案 > Visual Basic 行/列不存在数据

问题描述

我一直在寻找有关此问题的许多参考资料,但我一无所获。。它仍然有同样的错误,当我登录时,它不会有任何问题,过一段时间,错误会显示很多次.

Call Koneksi()
    Try
        cmd = New Odbc.OdbcCommand("SELECT * FROM tb_user WHERE username = '" & txt_username.Text & "' AND password = '" & txt_password.Text & "'", conn)
        rd = cmd.ExecuteReader
        rd.Read()
        If rd.HasRows = True Then
            txt_akses.Text = rd!hak_akses
            MsgBox("Welcome '" & rd!nama & "'", MsgBoxStyle.Exclamation, "Information")
            MenuCustomer.txt_user.Text = rd!username
            cmd = New Odbc.OdbcCommand("SELECT * FROM tb_permainan WHERE status = 1", conn)
            rd = cmd.ExecuteReader
            rd.Read()
            If txt_akses.Text = "Customer" Then
                If rd.HasRows = False Then
                    txt_username.Text = ""
                    txt_password.Text = ""
                    txt_akses.Text = ""
                    MenuCustomer.Show()
                Else
                    MsgBox("Permainan sedang berlangsung. Mohon Untuk login sesaat lagi", MsgBoxStyle.Exclamation, "Information")
                End If
            Else
                MenuStaff.Show()
            End If
        Else
            txt_username.Text = ""
            txt_password.Text = ""
            txt_akses.Text = ""
            txt_username.Select()
            MsgBox("Username atau password salah", MsgBoxStyle.Exclamation, "Information")
        End If
        rd.Close()
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try

这是我的模块,名为 koneksi Imports System.Data.Odbc

Module CRUD
'Setting Koneksi
Public conn As OdbcConnection
Public cmd As OdbcCommand
Public ds As New DataSet
Public da As OdbcDataAdapter
Public rd As OdbcDataReader
Public dt As New DataTable
Public LokasiData As String
Public result As String
Sub Koneksi()
    LokasiData = "Driver={MySQL ODBC 3.51 Driver};Database=db_bubble;server=192.168.1.14;uid=root"
    conn = New OdbcConnection(LokasiData)
    If conn.State = ConnectionState.Closed Then
        conn.Open()
    End If
End Sub

标签: mysqlvb.netvisual-studio-2017

解决方案


我已经像这样修改了我的代码,它仍然显示错误

        Using rd As OdbcDataReader = cmd.ExecuteReader
            If rd.HasRows = True Then
                While rd.Read()
                    txt_akses.Text = rd!hak_akses
                    MsgBox("Welcome '" & rd!nama & "'", MsgBoxStyle.Exclamation, "Information")
                    MenuCustomer.txt_user.Text = rd!username
                    If txt_akses.Text = "Customer" Then
                        cmd2 = New OdbcCommand("SELECT * FROM tb_permainan WHERE status = 1", conn)
                        Using rd2 As OdbcDataReader = cmd2.ExecuteReader
                            If rd2.HasRows = True Then
                                MsgBox("Permainan sedang berlangsung. Mohon Untuk login sesaat lagi", MsgBoxStyle.Exclamation, "Information")
                            Else
                                While rd2.Read()
                                    txt_username.Text = ""
                                    txt_password.Text = ""
                                    txt_akses.Text = ""
                                    MenuCustomer.Show()
                                End While
                            End If
                        End Using
                    Else
                        MenuStaff.Show()
                    End If
                End While
            Else
                txt_username.Text = ""
                txt_password.Text = ""
                txt_akses.Text = ""
                txt_username.Select()
                MsgBox("Username atau password salah", MsgBoxStyle.Exclamation, "Information")
            End If
        End Using

显示的错误正在循环..


推荐阅读