当前位置:编程学习 > C#/ASP.NET >>

如何自动生编号

 //自动生成职工编号方法
        private string GetAutID()
        {
            SqlDataReader mydr = GetCommand.sqlDataReader("SELECT MAX(EmployeesID) NID FROM WHJLS_Employee");
            int Num = 0;
            if (mydr.HasRows)
            {
                if (mydr[0].ToString() == "")
                    return "J1001";
                Num = int.Parse((mydr[0].ToString()));
                ++Num;
                string s = string.Format("{0:00000}", Num);
                return s;
            }
            else
            {
                return "J1001";
            }
        }

我在数据库中有一个表,表中有一个字段是职工ID号唯一是CHAR类型的
以编号的形式为: J1001
想自己生成J1002,J1003
不知道如何写 这是我写的是报错
请高人指定. --------------------编程问答-------------------- 是这报错吗?Num = int.Parse((mydr[0].ToString()));
J1001 怎么能转int   只能取1001转int --------------------编程问答-------------------- 一念之差 各种麻烦
首先 你在库中这个字段max出来 是按照字符排序的
那么 你获得新的ID的时候 拆分获得的这个东西  然后把数字部分+1
再组合回去  
我去 非得这么麻烦么 --------------------编程问答-------------------- 楼上的方式可以 --------------------编程问答-------------------- 流水号:
1:MSSQL的自增主键 设置为1000 增幅为1 
2:自己写个触发器或者存储过程吧 --------------------编程问答-------------------- 用数据库中的sequences简便 --------------------编程问答-------------------- private string GetAutID()
  {
  SqlDataReader mydr = GetCommand.sqlDataReader("SELECT MAX(EmployeesID) NID FROM WHJLS_Employee");
  int Num = 0;
  if (mydr.HasRows)
  {
  if (mydr[0].ToString() == "")
  return "J1001";
  Num = int.Parse((mydr[0].ToString().SubString(1))) + 1 ;
  //++Num;
  //string s = string.Format("{0:00000}", Num);
  return "J" + s.ToString();
  }
  else
  {
  return "J1001";
  }
  }

--------------------编程问答-------------------- private string GetAutID()
  {
  SqlDataReader mydr = GetCommand.sqlDataReader("SELECT MAX(EmployeesID) NID FROM WHJLS_Employee");
  int Num = 0;
  if (mydr.HasRows)
  {
  if (mydr[0].ToString() == "")
  return "J1001";
  Num = int.Parse((mydr[0].ToString().SubString(1))) + 1 ;
  //++Num;
  //string s = string.Format("{0:00000}", Num);
  return "J" + Num.ToString();
  }
  else
  {
  return "J1001";
  }
  }

--------------------编程问答--------------------  先截取,在+1,在拼接! --------------------编程问答-------------------- 关问一下,如果想在编号上加上字符,一般如何做才好. --------------------编程问答-------------------- --------------------编程问答--------------------
引用 7 楼 accomp 的回复:
private string GetAutID()
  {
  SqlDataReader mydr = GetCommand.sqlDataReader("SELECT MAX(EmployeesID) NID FROM WHJLS_Employee");
  int Num = 0;
  if (mydr.HasRows)
  {
  if (mydr[0].ToString()……

此法可行 --------------------编程问答--------------------

private string GetAutID()
  {
  SqlDataReader mydr = GetCommand.sqlDataReader("SELECT MAX(EmployeesID) NID FROM WHJLS_Employee");
  int Num = 0;
  if (mydr.HasRows)
  {
  if (mydr[0].ToString() == "")
  return "J1001";
  Num = int.Parse((mydr[0].ToString().SubString(1))) + 1 ;
  //++Num;
  //string s = string.Format("{0:00000}", Num);
  return "J" + Num.ToString();
  }
  else
  {
  return "J1001";
  }
  }

对着啊  --------------------编程问答-------------------- 你建个最大号表:

最大号表(前缀,当前值),

然后每次在 当前值上+1,再加上前缀,就得到职工编号。

这个最大号表是通用的,其它所有编号都可以从这里要。 --------------------编程问答-------------------- 传数字参数,然后用存储过程传进去,在存储过程中插入和更新时都将J再加上去
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,