0

良い一日、

助けが必要です。現在アプリケーションにログオンしているユーザーが特定の権限/役割を持っているかどうかを確認するために、MySQL データベースにクエリを実行しようとしています。照会された値が存在する場合、特定のメニュー項目を有効にしたいと考えています。

質問を入力しているときに、同様の質問のほとんどをチェックアウトしましたが、ほとんどが ASP と JSP を扱っているため、さらに混乱します (まだ調べていないため)。私はまだVB.NetとMySQLを学んでいます。

どうぞよろしくお願いいたします。

ここに私のコードがあります - 私は何をしていないのですか?:

Public Sub checkAccessLevel()
    Dim dbConn As New MySqlConnection(String.Format("Server={0};Port={1};Uid={2};Password={3};Database=parts", FormLogin.ComboBoxServerIP.SelectedItem, My.Settings.DB_Port, My.Settings.DB_UserID, My.Settings.DB_Password))
    Dim dbQuery As String = "SELECT Level FROM users WHERE username = '" & FormLogin.TextBoxUsername.Text & "'"
    Dim dbAdapter As New MySqlDataAdapter(dbQuery, dbConn)
    Dim dbData As MySqlDataReader

    Try
        dbConn.Open()
        dbData = dbAdapter.SelectCommand.ExecuteReader
        dbData.Read()
        While dbData.Read
            Select Case UCase(dbData(0).ToString)
                Case Is = "Admin"
                    TSMenuItemOptions.Enabled = True
                Case Is = "Manager"
                    TSMenuItemOptions.Enabled = True
                Case Is = "User"
                    TSMenuItemOptions.Enabled = False
            End Select
        End While
        dbData.Close()

    Catch ex As Exception
        MessageBox.Show("A DATABASE ERROR HAS OCCURED" & vbCrLf & vbCrLf & ex.Message & vbCrLf & _
                            vbCrLf + "Please report this to the IT/Systems Helpdesk at Ext 131.")
    Finally
        dbAdapter.Dispose()
        dbConn.Close()
    End Try

End Sub
4

1 に答える 1

0

私は自分の質問を次のように解決することができました。

Select Case ステートメントを変更することにより....

オリジナル (不正解):

Select Case UCase(dbData(0).ToString)

修正済み (正しい):

Select Case dbData(0).ToString
于 2012-11-08T15:54:18.503 に答える