C#生成顺序ID!

来源:百度知道 编辑:UC知道 时间:2024/06/15 22:24:16
已经有ID:1,3,10;

C#怎么吧2,4,5,6,7,8,9补上

1,3,10是我从数据库读出的ID,都不是主建
我想插入数据的时候把2,4,5,6,7,8,9中间的ID补上

a[0]=b[0];
for(i=1;i<10;i++)
{
for(j=1;j<数据库ID个数;j++)
{
if(b[j]==a[i]+1)
a[i+1]=b[j];
else
a[i+1]=a[i]+1;
}
}
看懂了没?

...

我是菜鸟...看不懂楼上那位高手的算法...

希望高手能加个/**/说明一下...

你用a数组指向b数组...

看程序流程,b数组是数据库的.
a数组因为指向了b数组...所以a数组地址和b的一样...值当然就一致了.

但就是这精华部份看不懂了...
if(b[j]==a[i]+1)
a[i+1]=b[j];
else
a[i+1]=a[i]+1;

内层for()第一次j=i=1,b[j]=a[i]=1,而条件是b[j]==a[i]+1即==>1==1+1
否则a[i+1]=a[i]+1;//a[i+1]==b[2]=3,a[i]+1==>1+1=2;
所以第一次是执行else部份的.即a[i+1]=a[j]+1;//相当于a[i+1]=2,a[2]=2;

哇...好复杂啊...什么算法来的.?有没名称的?

小弟是菜鸟...看不懂啊...来学习学习...

用一个循环来判断当前最小的ID是多少?

int i = 0;
int id = 0;

while (SqlDataReader.Read())
{
id =(int32)SqlDataReader["id"];
if (i < id)
{
break;
}

}

然后i就是当前空的ID了.........直接插入吧...