前提・実現したいこと
ユーザーにIDを入力させ外部のCSVファイルの中に、入力されたIDと同じものがあるかを確認し一致するIDがあった場合は特定のフォームを呼び出す処理を行うログインフォームを作りたいです。
CSVファイルのデータを、TextFieldParserクラスを使用して読み込む処理まではできましたが読み込んだデータに対しての処理で詰まってしまいました。
CSVファイルの中身は以下のようになっております。
ID,ユーザー名,呼び出すフォームの種類を判別する番号※CSVファイル内に表題行は無くデータのみです
1000,田中一郎,1
1001,山田次郎,2
1003,佐藤三郎,1
1004,加藤司郎,3
呼び出すフォームの番号
1→Form1
2→Form2
3→Form3
たとえばユーザーIDが1000の田中さんがログインした場合、呼び出すフォームは1番が割り振られたForm1に、ユーザーIDが1001の山田さんがログインした場合はForm2を呼び出すといった制御にしたいです。
該当のソースコード
Visual
1 Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click 2 3 '各テキストボックスが空欄の場合メッセージボックスを表示 4 If UsernameTextBox.Text = "" Then 5 MsgBox("ユーザー名を入力してください。") 6 Return 7 ElseIf PasswordTextBox.Text = "" Then 8 MsgBox("パスワードを入力してください。") 9 Return 10 End If 11 12 Dim csvRecords As New System.Collections.ArrayList() 13 14 'CSVファイル名 15 Dim csvFileName As String = "C:\LoginDate\ID.csv" 'テスト段階なのでローカルです 16 17 'Shift JISで読み込む 18 Dim tfp As New FileIO.TextFieldParser(csvFileName, 19 System.Text.Encoding.GetEncoding(932)) 20 21 'カンマで区切られたデータを仕分ける 22 tfp.TextFieldType = FileIO.FieldType.Delimited 23 24 tfp.Delimiters = New String() {","} 25 26 tfp.HasFieldsEnclosedInQuotes = True 27 28 'フィールドの前後からスペースを削除する 29 tfp.TrimWhiteSpace = True 30 31 While Not tfp.EndOfData 32 'フィールドを読み込む 33 Dim fields As String() = tfp.ReadFields() 34 '保存 35 csvRecords.Add(fields) 36 End While 37 38 39 'フォームを呼び出した後ログインフォームを閉じる 40 Me.Close() 41 42 End Sub
補足情報(FW/ツールのバージョンなど)
開発環境:Visual Studio 2017
回答1件
あなたの回答
tips
プレビュー