110,571
社区成员
发帖
与我相关
我的任务
分享
string strSql = "";
//先查询库中 最大值
int startVal = start; //开始计算值
strSql = "select max(userNu) from t_user where userNu>"+start.ToString()+" and userNu<"+(num+start);
object obj = SqlHelper.ExecuteScalar(SqlHelper.ConnectionString, CommandType.Text, strSql);
if (obj != null && obj != DBNull.Value)
{
startVal = Convert.ToInt32(obj);
}
if (startVal > (num+start)) //判断是否到结尾 到结尾 再重新开始
{
startVal = 1;
}
for (int i = startVal; i < (start+num); i++)
{
string str = i.ToString();
while (str.Length < 4)
{
str = "0" + str;
}
strSql = "select id from t_user where userNu=@userNu";
obj = SqlHelper.ExecuteScalar(SqlHelper.ConnectionString, CommandType.Text, strSql,
new SqlParameter("userNu", str));
if (obj == null || obj == DBNull.Value)
{
txt_userNu.Text = str;
txt_userNu.Focus();
break;
}
}
List<int> listArray=new List<int>(){5000,5001,5003,5004}; //从数据库读取所有UserNum
int availableNum;
int num = 5000;
for (; num < listArray.Count; num++)
{
if (listArray.IndexOf(num) <= -1)
{
break;
}
}
availableNum = num;
List<int> listArray=new List<int>(){5000,5001,5003,5004};
int availableNum;
for (int num = 5000; num < listArray.Count; num++)
{
if (listArray.IndexOf(num) <= -1)
{
availableNum = num;
break;
}
}
availableNum就是下面可以插入数据库的编号
--学号表
CREATE TABLE Student_Number
(
Number INT NOT NULL
)
--学生信息表
CREATE TABLE Student
(
Number INT NOT NULL,
Name NVARCHAR(20) NOT NULL
)
--插入学号
DECLARE @Index INT=5001
WHILE(@Index<7000)
BEGIN
INSERT INTO Student_Number VALUES(@Index)
SET @Index=@Index+1
END
--插入学生信息
INSERT INTO Student VALUES(5001,'TEST1')
INSERT INTO Student VALUES(5003,'TEST2')
--找出未用的最小学号,号码都用完了变成了0
SELECT ISNULL(MIN(Number),0) Number FROM
(SELECT Number FROM Student_Number
EXCEPT
SELECT Number FROM Student) s