我使用idcorrectcounter(int)
编写了新的单元格ID,i(int)
用于标识要更新的行。
我使用(Convert.ToInt32(txtrid.Text)-2)
根据行号执行代码。
我希望在删除后排列ID单元格,此代码正常工作,直到其中一个ID单元格为" 1"。
int idcorrectcounter=0;
for (int i = 0; i <= (Convert.ToInt32(txtrid.Text)-2); i++)
{
idcorrectcounter++;
connect.Open();
SqlCommand idcorrect = new SqlCommand("Update bighall1record set ID="
+ idcorrectcounter.ToString()
+ " where ID='"
+ dataGridView1.Rows[i].Cells[0].Value.ToString()
+ "'", connect);
idcorrect.ExecuteNonQuery();
connect.Close();
showdata("Select *from bighall1record");
}
idcorrectcounter=0;
答案 0 :(得分:0)
我认为您没有为ID&#34;设置唯一的&#34;标识符。这里。
答案 1 :(得分:0)
删除表格行后重置自动增量
通常情况下,表格上的ID列等列会自动递增。这只是意味着表中的下一个插入将具有比前一个更多的ID,因此所有ID都是唯一的。
但是,如果从表中删除一行,该表将自动递增,就好像该行根本没有被删除一样。结果是数字序列中存在差距。这通常不是一个问题,但您可能想要重置自动增量字段。
重置自动增量字段有两个简单的步骤: 在自动增量字段中找到最高数字
要查找最高编号,请运行以下SQL命令:
SELECT MAX(column
)FROM table
;
将'column'替换为自动递增列的名称。将表替换为表的名称。 重置自动增量字段
下一步是从第一个命令获取数字并从那里自动增加。因此,在该数字中添加一个并运行以下命令:
ALTER TABLE table
AUTO_INCREMENT = number;
用前一个命令加一个结果替换'number',并用表名替换table。
如果删除了表中的所有行,则可以运行alter table命令并将其重置为0.