//自动生成职工编号方法
        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
不知道如何写 这是我写的是报错
请高人指定.

解决方案 »

  1.   

    是这报错吗?Num = int.Parse((mydr[0].ToString()));
    J1001 怎么能转int   只能取1001转int
      

  2.   

    一念之差 各种麻烦
    首先 你在库中这个字段max出来 是按照字符排序的
    那么 你获得新的ID的时候 拆分获得的这个东西  然后把数字部分+1
    再组合回去  
    我去 非得这么麻烦么
      

  3.   

    流水号:
    1:MSSQL的自增主键 设置为1000 增幅为1 
    2:自己写个触发器或者存储过程吧
      

  4.   

    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";
      }
      }
      

  5.   

    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";
      }
      }
      

  6.   


    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";
      }
      }对着啊