Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C自动生成字母数字唯一Id_C#_Sql_Sql Server_Winforms - Fatal编程技术网

C# 使用C自动生成字母数字唯一Id

C# 使用C自动生成字母数字唯一Id,c#,sql,sql-server,winforms,C#,Sql,Sql Server,Winforms,需要根据分支机构创建员工记录 我有一个场景,如果选择了分支组合框值xyz branch,那么 ID以XYZ-0001开头 如果选择了组合框值abc branch,则 ID以ABC-0001开头,依此类推 请就如何创建此格式提出建议。我建议将ID保存为某个唯一值,而不是保存为“XYZ-0001” 分支 唯一ID 名称 Codevarchar3:3个字母的分行代码,例如:XYZ ... 可雇佣 唯一ID Number int:分支机构中的员工数+1 BranchID外键 和employeenumbe

需要根据分支机构创建员工记录

我有一个场景,如果选择了分支组合框值xyz branch,那么

ID以XYZ-0001开头

如果选择了组合框值abc branch,则

ID以ABC-0001开头,依此类推


请就如何创建此格式提出建议。

我建议将ID保存为某个唯一值,而不是保存为“XYZ-0001”

分支

唯一ID 名称 Codevarchar3:3个字母的分行代码,例如:XYZ ... 可雇佣

唯一ID Number int:分支机构中的员工数+1 BranchID外键 和employeenumber作为计数+1显示分支机构中的员工数,同时显示“BranchCode”-“employeenumber”作为employeecode


Branch+-+String.Format{0:D4},employeenumber

最好的方法是,从数据库获取最后一次更新

步骤1: 从表中选择MAXID; 步骤2:
将ID值增加1左右,并将其附加到组合框值中……

我建议不要将员工ID存储为数据库中的一列。这只是糟糕的形式,特别是糟糕的范式

我建议您将员工ID存储在两个单独的列中,即Branch和BranchEmployeeId

这将允许您更快地确定序列中的下一个ID,并且您应该能够使用数据库索引询问分支XYZ中有多少员工

但是我会警告你,总体上你需要考虑员工ID表格是否真的有意义。员工是否曾经搬家过分公司?员工可以在多个分支机构工作吗

在SQL server 1中为每个分支创建序列

使用下一个值获取下一个序列号

然后使用C根据返回值创建ID,或者如果您喜欢SQL,则使用SQL

然后将得到的值格式化如下:

value = 123;
 Console.WriteLine(value.ToString("00000"));
 Console.WriteLine(combo.SelectedItem.ToString()+ "-" + String.Format("{0:00000}", value));
 // Displays ABC-00123

过滤所有员工ID,以分支机构代码开始,按描述下单,获取第一条记录。然后按“-”分割,获取ID号并将新员工另存为concat branch_code&last_ID+1如果您想生成唯一的用户ID:-也许?只是一个一般性的评论,您不应该尝试在C中解决这个问题,我有一个类似的情况,我必须为多用户应用程序获取唯一的ID,在两个用户同时做相同的事情之前一切都很顺利,如果有足够的时间,这将发生,并且生成的密钥不是唯一的。在多用户环境中,这将失败