C# 在插入数据库时使用字符创建序列号
如何在插入数据库时创建带有字符的序列号 此代码设计用于使用计算机设备信息存储程序。 “asse_no”是由分隔符+年份+四位数字组成的序列号。 “asse_gb”是选择用于存储的PC、笔记本电脑、显示器、打印机和数据,并分别与“PC”、“NB”、“MB”和“PR”一起输入到“asse_no”分类中 感谢您的帮助 我写的代码C# 在插入数据库时使用字符创建序列号,c#,sql-server,sequence,C#,Sql Server,Sequence,如何在插入数据库时创建带有字符的序列号 此代码设计用于使用计算机设备信息存储程序。 “asse_no”是由分隔符+年份+四位数字组成的序列号。 “asse_gb”是选择用于存储的PC、笔记本电脑、显示器、打印机和数据,并分别与“PC”、“NB”、“MB”和“PR”一起输入到“asse_no”分类中 感谢您的帮助 我写的代码 { //make seq_no string year = DateTime.Now.ToString("
{
//make seq_no
string year = DateTime.Now.ToString("yyyy");
int i = 0;
switch (cbx_asse_gb.Text)
{
case "PC":
tbx_asse_no.Text = "PC" + year + i.ToString("D4");
break;
case "NB":
tbx_asse_no.Text = "NB" + year + i.ToString("D4");
break;
case "MT":
tbx_asse_no.Text = "MT" + year + i.ToString("D4");
break;
case "PR":
tbx_asse_no.Text = "PR" + year + i.ToString("D4");
break;
}
this.gjmjs0TableAdapter.Insert(tbx_asse_no.Text.Trim(), tbx_asse_nm.Text.Trim(), cbx_asse_gb.Text.Trim(), tbx_juri_cd.Text, cbx_area_cd.Text, tbx_mode_nm.Text, tbx_seri_no.Text, tbx_purc_nm.Text, tbx_make_nm.Text, date_purc_date.Value, cbx_user_cd.Text, tbx_lan_ip.Text, tbx_gene_no.Text, tbx_acct_no.Text, tbx_remark.Text, cbx_flag_gb.Text, date_clos_date.Value, tbx_clos_deta.Text, bImage.ToString(), date_rent_fdate.Value, date_rent_tdate.Value, tbx_prop_flag.Text, tbx_rent_no.Text, tbx_addr.Text, purc_amt, cbx_use_mult.Text, rent_amt, date_make_date.Value, cbx_admi_cd.Text, cbx_dept_cd.SelectedValue.ToString(), tbx_asse_deta.Text, tbx_peri_devi.Text, tbx_hdd_capa.Text, tbx_cpu_size.Text, tbx_os_kind.Text, tbx_ram_capa.Text, null, null, Properties.Settings.Default.LoginIDSave, DateTime.Now);
最简单的方法是确保表中有一个标识列,该列将生成大致顺序的int,然后创建一个计算列来添加前缀。“asse_no”的数据类型是“varchar”,我不能,因为我不知道您是如何说的。我将引入一个新的C#type来封装子字段。特别是当您需要再次解析它时。然后只需存储在nvarchar数据库列中。如果使用EF,您可以定义自定义值映射或自定义函数,以便也可以查询子字段。确保数字是连续的、原子的等是一个更难的问题…当一个数据库由多个用户使用时,您必须使用存储过程以确保不会生成重复的序列号。见: