0

VB.Net を使用してからしばらく経っているので、これは簡単かもしれません。

テキストボックス、コンボボックス、ボタンを備えたシンプルなログインフォームがあります。コンボボックスは SQL データベースにバインドされ、Users テーブルのユーザー名を表示します。アイデアは、名前を選択し、パスワードを入力して、新しいフォームにログオンすることです (この部分はうまくいきます!)。間違ったパスワードを入力すると、「無効」というメッセージがフォームに表示されます。この段階で、何らかの理由でコンボボックスが空白になります。ドロップダウンには、かつて名前があった場所に空のスペースができました。ここにパスワード付きの名前を入力すると、オブジェクト参照エラーが発生します。コンボボックスをリセットしてウェブを検索するためにあらゆることを試しましたが、何も機能しません!!!

(これは安全なログインではないことはわかっています。これは、データをコンボ ボックスにバインドし、SQL テーブルと照合する簡単な例にすぎません)。ご協力いただきありがとうございます!

enter code here


    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles BTN_Logon.Click  

    Try  
    Dim STR_User As String = Users_nameComboBox.SelectedValue  
    Dim STR_Pwd As String = TB_Pwd.Text  
    STR_User = STR_User.Trim  

    'MessageBox.Show(STR_User & "|" & STR_Pwd)'Used to verify this stage works  
    Dim numRecords As Int16 = UsersTableAdapter.FillByLogin(Me.Login_testDataSet.users, STR_User, STR_Pwd)  
    'MessageBox.Show(numRecords) 'Used to verify this stage works  

     If (numRecords > 0) Then
     Dim DB_User As String = Me.Login_testDataSet.users(0).users_name.Trim
     Dim DB_Pwd As String = Me.Login_testDataSet.users(0).users_pwd.Trim
     'MessageBox.Show(DB_User & "|" & DB_Pwd)'Used to verify this stage works

     If DB_User.Equals(STR_User) And DB_Pwd.Equals(STR_Pwd) Then
     'User is authenticated for application
     'This section works (removed to cleanup code)

     Else
     MessageBox.Show("ERROR" & STR_User & "|" & STR_Pwd) 'Shows that this stage works
     'Need to figure out why combobox doesn't refill, using restart for now
     'Application.Restart()

     End If
     End If

     MessageBox.Show("ERROR" & STR_User & "|" & STR_Pwd) 'Shows that this stage works
     'Need to figure out why combobox doesn't refill, using restart for now
     'Application.Restart()


     Catch ex As Exception
     MessageBox.Show(ex.Message)
     'Need to figure out why combobox doesn't refill, using restart for now
     'Application.Restart()

     End Try

     End Sub









     InitializeComponent

     'Users_nameComboBox

     Me.Users_nameComboBox.DataBindings.Add(New System.Windows.Forms.Binding("Text", 
     Me.UsersBindingSource, "users_name", True))
     Me.Users_nameComboBox.DataBindings.Add(New System.Windows.Forms.Binding("SelectedValue", Me.UsersBindingSource, "users_name", True))
     Me.Users_nameComboBox.DataSource = Me.UsersBindingSource
     Me.Users_nameComboBox.DisplayMember = "users_name"
     Me.Users_nameComboBox.Name = "Users_nameComboBox"
     Me.Users_nameComboBox.ValueMember = "users_name"
4

0 に答える 0