如果datagridview值为"1"我无法得到它的价值

本文关键字:quot 值为 datagridview 如果 | 更新日期: 2023-09-27 18:04:23

我使用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;

如果datagridview值为"1"我无法得到它的价值

我认为你没有在这里设置唯一的" ID标识符"。

删除表行后重置自动增量

通常情况下,表上的列(如ID列)会自动递增。这仅仅意味着下一个插入到表中的ID将比前一个多一个,因此所有的ID都将是唯一的。

但是,如果从表中删除一行,表将自动增加,就好像该行根本没有被删除一样。结果是数列中有一个缺口。这通常不是什么大问题,但是您可能需要重置auto increment字段。

重置auto increment字段有两个简单的步骤:查找auto increment字段中的最大值

要查找最大的数字,请执行以下SQL命令:SELECT MAX(column) FROM table;

将'column'替换为自动递增列的名称。将table替换为表的名称。重置auto increment字段

下一步是获取从第一个命令获得的数字,并从那里自动递增。所以在这个数字上加1,然后运行下面的命令:ALTER TABLE table AUTO_INCREMENT = number;

将'number'替换为前一个命令的结果加1,并将table替换为表名。

如果您删除了表中的所有行,那么您可以运行alter table命令将其重置为0