我正在使用 SQL Server Express 和 VS2008。
我有一个带有表的数据库A
,其中有一ID
列为IDENTITY
. ID 是自动递增的。即使该行被删除,ID
仍然会增加。
经过几次数据操作,当前ID
已经达到了15个,例如。
当我运行应用程序时
- 如果至少有 1 行:如果我添加新行,则新 ID 为 16。一切都很好。
- 如果表为空(无行):如果我添加一个新行,新的ID为0,这是一个错误(我认为)。
进一步的数据操作(例如删除或更新)将导致未处理的异常。
有没有人遇到过这个?
PS。在我的表定义中,ID 已选择如下:
Identity Increment = 1; Identity Seed =1;
数据库加载代码是:
dataSet = gcnew DataSet();
dataAdapter->Fill(dataSet,"A");
dataTable=dataSet->Tables["A"];
dbConnection->Open();
更新按钮方法
dataAdapter->Update(dataSet,"tblInFlow");
dataSet->AcceptChanges();
dataTable=dataSet->Tables["tblInFlow"];
dataGrid->DataSource=dataTable;
如果我按更新:
如果至少有一行:数据网格视图会更新并正确显示表格。
如果表中没有任何内容(无数据行),则 Add 方法将添加一个新行,但从 ID 0 开始。如果我关闭程序并重新启动它:ID 将为 16,这是正确的。
这是添加方法
row=dataTable->NewRow();
row["column1"]="something";
dataTable->Rows->Add(row);
dataAdapter->Update(dataSet,"A");
dataSet->AcceptChanges();
dataTable=dataSet->Tables["A"];