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) 角色

*注意,staff id 和 u_id 是一回事。

我想要做的是,为我的 textBox_staffid.Text 创建某种验证,以便它只允许数据库中存在的员工 ID 号。例如,如果员工 ID 最多为 5,则用户不能输入 6 作为员工 ID。

请帮忙!

4

2 回答 2

1

为什么不使用 ComboBox,这样就不需要验证?

  1. 取回List<Staff>
  2. 绑定ComboBox ItemsSource到您检索到的List<Staff>
  3. 绑定DisplayMemberPath,SelectedValuePathSelectedValue

这样,您将只能选择现有的员工 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

您可以尝试附加到文本框的离开事件,并在那里查询数据库(或您创建的表的缓存)以查看文本框中的值是否在人员表中。如果表格中没有它,您可以重新关注 staffid 文本框,以便他们必须输入有效的 ID。

于 2013-01-28T13:35:15.973 回答