如何自动生编号
//自动生成职工编号方法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,在拼接! --------------------编程问答-------------------- 关问一下,如果想在编号上加上字符,一般如何做才好. --------------------编程问答-------------------- --------------------编程问答--------------------
此法可行 --------------------编程问答--------------------
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#