1

アプリケーションのカスタムログインフォームがあり、データベース(MS Access)からユーザー名とパスワードを取得します。ユーザーがユーザー名を選択してパスワードを入力し、ログインボタンを押すと、新しいフォームが表示されます。これは私が使用したログインボタンクリックイベントです:

OleDbCommand cmde = new OleDbCommand("SELECT * FROM Account WHERE username='"+ username.Text +"' and password='"+ passtxt.Text +"'", GetConnection());
OleDbDataReader reader = cmde.ExecuteReader();
if (reader.HasRows == true)
{
    MainForm frm = new MainForm(this);
    frm.Show();
    this.Hide();
}
else
{
    MessageBox.Show("Wrong Password!!!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
}

私の質問は、新しいフォームにログインしたユーザー名/レベルを取得するにはどうすればよいですか?そのため、管理者以外のユーザーのためにフォームのいくつかのオプションを非表示にすることができます。

4

4 に答える 4

2

データベースのUsersテーブルにフィールドを追加してレベルを決定し、このフィールドをユーザー名とパスワードのテストとしてテストできます。

このリンクは あなたが持っている質問に役立ちますか?

于 2013-03-12T12:08:54.067 に答える
1

基本的に、@MaathProgrammerが解決策を持っています。「isAdmin」などの別のフィールドを作成して、フォームでその値を確認することもできます。

したがって、ユーザーはサインインします。

ユーザーデータをロードします。例えば。ユーザーデータの保存はいくつかの変数であり、たとえばユーザークラスです。

適切なチェックを行います。例えば。ユーザー管理者です(ステートメントの場合のみ)

チェックを適用します。例えば。一部の要素を非表示にします。

継続する...

于 2013-03-12T12:13:40.837 に答える
0

コンストラクターでユーザーID値を渡すよりも、showまたはshowdialogメソッドで新しいフォームを呼び出すときはいつでも



    Form2 objForm2=new Form2(String userid)
objForm2.ShowDialog();


Form2では、文字列引数を使用して新しいコンストラクターを作成します。

ユーザーIDを使用して、要件に基づいてform2で任意の操作を実行できます。

于 2013-03-12T12:13:53.920 に答える