我有一个插入客户端表单,允许我的管理员将客户端插入数据库表。
我的客户端表包含以下列: 1)c_id 2)c_name 3)c_address 4)c_contactinfo 5)c_refno 6)c_profileinfo 7)staff_id
我有另一张名为staff表的表。 在staff表中,数据库包含以下列: 1)u_id 2)用户名 3)u_password 4)角色
*注意,员工ID和u_id是一回事。
我要做的是,为我的textBox_staffid.Text创建某种验证,以便它只允许数据库中存在的员工ID号。 例如,如果员工ID仅为5,则用户不能输入6作为员工ID。
请帮忙!
答案 0 :(得分:1)
为什么不使用ComboBox,因此您不需要验证?
List<Staff>
ComboBox
ItemsSource
绑定到您检索到的List<Staff>
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);
}
答案 1 :(得分:0)
您可以尝试附加到文本框的Leave事件,并在那里查询数据库(或您所创建的表的缓存),以查看文本框中的值是否在staff表中。如果表中没有,您可以重新关注staffid文本框,以便他们输入有效的ID。