C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

DataGridViewを利用したログイン画面の作成

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■91825 / inTopicNo.1)  DataGridViewを利用したログイン画面の作成
  
□投稿者/ 逃避行動 (1回)-(2019/08/06(Tue) 17:12:55)

分類:[VB.NET/VB2005 以降] 

初めての書き込みになります。

完全初心者なので説明不足の部分が多々あるかと思いますが、
ご助力のほどお願いいたします。

まず、環境について

・windows10
・visalstudio2017
・oracleDB

現在ログイン画面を作成しております。
教えていただきたいことは、DataGridViewにユーザの名前を表示しているのですが
cellをクリックしたときパワーユーザ、一般ユーザを判断し、パスワードの入力項目を出力するといったものです。

やりたい画面の動きとしては
@ログイン画面表示

ADataGridViewよりユーザ名を指定

Bパワーユーザーの場合、パスワード入力項目(テキストやラベルなど)を表示

C一般ユーザの場合、パスワード入力項目は表示されない

また、DataGridView1には、データソース選択によりユーザ名を呼び出すテーブル(今後ユーザテーブルと記す)は入れておりますが、
パワーユーザと一般ユーザを判別するテーブル(権限テーブルと記す)は、別テーブルになります。
ユーザテーブルと、権限テーブルはDataSet.xsdにてリレーションしています。

ユーザテーブルのカラムは「id」「氏名」
権限テーブルのカラムは「id」「権限区分」

権限区分よりパワーユーザか一般ユーザか判別しており
パワーユーザは「1」
一般ユーザは「0」になります。

権限区分「1」のユーザ名を出力するSQL文を書くことはできますが、
それをどうプログラムで表現し、上記記述のような動きにする方法がわかりません。

恐らく、if文を使ってcellクリックされたユーザの権限が1の場合、パスワード入力項目を表示する
といった感じだとは思うのですが、
ソースを見ていただければわかるよう
Dimなどの宣言の仕方がいまいちわかっておりません。

下記ソースでは、どのユーザ名を指定しても入力項目が表示されるようになっています。

Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

''TODO: このコード行はデータを 'DataSet3.担当マスタ' テーブルに読み込みます。必要に応じて移動、または削除をしてください。
Me.担当マスタTableAdapter.Fill(Me.DataSet3.担当マスタ)
'DataGridViewの元となるデータを設定
DataGridView1.MultiSelect = False
DataGridView1.ColumnHeadersVisible = False
Try
Me.担当マスタTableAdapter.FillBy2(Me.DataSet3.担当マスタ)
Catch ex As System.Exception
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
End Sub

Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged

End Sub

Private Sub Label2_Click(sender As Object, e As EventArgs) Handles Label2.Click

End Sub

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click

End Sub

Private Sub DataGridView1_CellClick(ByVal col As Long, ByVal row As Long)

Label2.Visible = True
TextBox1.Visible = True
Button3.Visible = True

End Sub

End Class

ごちゃごちゃしてますが、よろしくお願いいたします。
引用返信 編集キー/
■91837 / inTopicNo.2)  Re[1]: DataGridViewを利用したログイン画面の作成
□投稿者/ WebSurfer (1866回)-(2019/08/07(Wed) 10:16:55)
No91825 (逃避行動 さん) に返信

Windows Forms アプリで Oracle DB にあるユーザー情報でユーザー認証・承認をする、さらに
DataGridView を使うというのが自分的には理解不能で、見当違いのことをされているような気
もしますが・・・

ASP.NET の Membership オブジェクトと Roles オブジェクトを Windows Forms アプリケーシ
ョンでも利用できますので、それを考えてみてはいかがですか? 具体的には以下の記事を見
てください。

Windows Forms アプリで Membership を利用
http://surferonwww.info/BlogEngine/post/2014/02/11/aspnet-membership-and-roles-objects-usable-in-windows-forms-application.aspx

上記はユーザー情報のストアには SQL Server を利用していますが、MemberShip / Role プロ
バイダを Oracle に合わせてカスタム実装すれば同じことができるはずです。

とりあえず、まずすべて .NET Framework に用意されている SQL Server 用のプロバイダで実装
してみて、それが使えるようなら Oracle 用のカスタムプロバイダを実装してみてはいかがです
か?
引用返信 編集キー/
■91840 / inTopicNo.3)  Re[2]: DataGridViewを利用したログイン画面の作成
□投稿者/ 逃避行動 (2回)-(2019/08/07(Wed) 11:02:19)
No91837 (WebSurfer さん) に返信
> ■No91825 (逃避行動 さん) に返信
>
ご返信いただきありがとうございます。

今、VB6のソースコードをvb.netで使えるようにしているのですが…
すこし手法を再度検討してみます。

いただいたURLも参考にさせていただきます。
ありがとうございました!
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ