1

管理者がクライアントをデータベース テーブルに挿入できるクライアント挿入フォームがあります。

私のクライアントテーブルには次の列が含まれています: 1) c_id 2) c_name 3) c_address 4) c_contactinfo 5) c_refno 6) c_profileinfo 7) staff_id

スタッフテーブルと呼ばれる別のテーブルがあります。スタッフテーブルでは、データベースには次の列が含まれています: 1) u_id 2) ユーザー名 3) u_password 4) 役割

※スタッフIDとu_idは同じものです。

私がやろうとしているのは、データベースに存在するスタッフID番号のみを許可するように、textBox_staffid.Textのある種の検証を作成することです。たとえば、スタッフ ID が 5 までしかない場合、ユーザーはスタッフ ID として 6 を入力できません。

助けてください!

4

2 に答える 2

1

ComboBox を使用しないのはなぜでしょうか。検証する必要はありません。

  1. 取得するList<Staff>
  2. ComboBox ItemsSource取得したものにバインドしますList<Staff>
  3. DisplayMemberPath、、SelectedValuePathおよびバインドSelectedValue

そうすれば、既存のスタッフ ID のみを選択できます。

そしてエキサイティングなことに、それをDictionary<T1, T2> StaffMembersあなたをバインドするプロパティにすることができますComboBox ItemsSource

WPF の場合:

XAML:

 <ComboBox ItemsSource={Binding StaffMembers} SelectedValuePath="Key" DisplayMemberPath="Value" />

分離コード:

 List<Staff> staffList = dbContext.Staff.ToList().Distinct();
 foreach(Staff s in staffList) {
      StaffMembers.Add(s.u_id, s.u.username);
 }
于 2013-01-28T13:58:36.663 に答える
0

テキストボックスのLeaveイベントにアタッチして、データベース (または作成したテーブルのキャッシュ) にクエリを実行して、テキストボックスの値がスタッフテーブルにあるかどうかを確認できます。テーブルに存在しない場合は、有効な ID を入力する必要があるように、staffid テキストボックスに再度焦点を合わせることができます。

于 2013-01-28T13:35:15.973 に答える