C# 删除某些行后,重新排列自动增量列值
表上的ID列等列将自动递增的情况。这仅仅意味着下一次插入到表中的ID比上一次多一个,因此所有ID都是唯一的 但是,如果从表中删除一行,该表将自动递增,就好像该行根本没有被删除一样。结果是数字序列中出现了一个缺口。这通常不是什么大问题,但您可能需要重置自动增量字段 PatientNo是主键,下面是我迄今为止尝试过的代码C# 删除某些行后,重新排列自动增量列值,c#,.net,sqlite,auto-increment,C#,.net,Sqlite,Auto Increment,表上的ID列等列将自动递增的情况。这仅仅意味着下一次插入到表中的ID比上一次多一个,因此所有ID都是唯一的 但是,如果从表中删除一行,该表将自动递增,就好像该行根本没有被删除一样。结果是数字序列中出现了一个缺口。这通常不是什么大问题,但您可能需要重置自动增量字段 PatientNo是主键,下面是我迄今为止尝试过的代码 private void txtincr() { int a; if (textPatientNo.Text == "")
private void txtincr()
{
int a;
if (textPatientNo.Text == "")
{
if (con.State == 0)
{
con.Open();
}
string Query= "select PatientNo from PatientRegistration";
SQLiteDataAdapter DataAdapter = new SQLiteDataAdapter(Query,con);
DataSet PatientDataSet = new DataSet();
DataAdapter.Fill(PatientDataSet);
if (PatientDataSet.Tables[0].Rows.Count != 0)
{
a = PatientDataSet.Tables[0].Rows.Count;
a = a + 1;
textPatientNo.Text = Convert.ToString(a);
textPatientName.Focus();
}
else
{
textPatientNo.Text = "1";
textPatientName.Focus();
}
con.Close();
}
}
当您将列声明为INTEGER主键时,无需执行任何操作,因为数据库会自动使用表中最大值之后的下一个值
将列声明为INTEGER主键自动递增时,当前计数器存储在sqlite_序列表中。你可以简单地回答。你为什么要这样做?难道只有我一个人不能回答这个问题吗?请再解释一下-何时何地重置此问题与SQLite有关。
You can try using the SQL Query
DBCC CHECKIDENT('TABLENAME',RESEED,initialvalue);