需要根据分支创建员工记录。
我有一个场景,如果选择了分支组合框值xyz branch那么
ID以XYZ-0001
开头如果选择了组合框值abc branch那么
ID以ABC-0001开头,然后依此类推
请就如何创建此格式提出任何建议。
答案 0 :(得分:-1)
我建议不要将您的员工ID存储为数据库中的列。它只是糟糕的形式,特别是Bad Normal Form。
我建议您将“员工ID”存储在Branch
和BranchEmployeeId
两个单独的列中。
这将使您能够更快地找出序列中的下一个ID,并且您应该能够使用数据库索引提出诸如“在XYZ分支中有多少员工”之类的问题。
但是我会警告你,总的来说,你需要考虑员工ID表格是否真的有意义。员工有没有搬家?员工可以在多个分支机构工作吗?
答案 1 :(得分:-1)
https://msdn.microsoft.com/en-us/library/ff878091.aspx
为每个分支在SQL Server 1中创建一个序列。
https://msdn.microsoft.com/en-us/library/ff878370.aspx
使用下一个值获取下一个序列号
然后使用C#根据返回值创建ID(或者如果您喜欢SQL使用SQL)。
然后格式化你得到的值:
value = 123;
Console.WriteLine(value.ToString("00000"));
Console.WriteLine(combo.SelectedItem.ToString()+ "-" + String.Format("{0:00000}", value));
// Displays ABC-00123
答案 2 :(得分:-2)
我建议将ID保存为某个唯一值,而不是将ID保存为“XYZ-0001”。
<强> BranchTable 强>
<强> EmployeeTable中强>
employeenumber
作为分支机构中员工人数的count()+1
,在显示您时可以将'BranchCode'-'EmployeeNumber'
显示为员工代码。
Branch + "-" + String.Format("{0:D4}", employeenumber);
答案 3 :(得分:-2)
最好的方法是,获取最后更新的是来自Db
第1步: 从YourTable中选择MAX(ID); 第2步: 将ID值增加1左右,并使用组合框值附加....