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

时间:2016-08-27 15:41:12

标签: c# datagridview

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

2 个答案:

答案 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.