身份规范未正确更新

时间:2012-06-08 08:48:10

标签: sql-server database sqldataadapter

我的表格中的字段“ID”是 IdentitySpecification ,它增加1。

以下代码正常工作:

1-最初,该表有5行,ID为1-5;

2-行5被删除。

3-关闭数据库(退出应用程序)。

4-再次运行该应用程序。 Datagrid视图显示1-4的ID(可以)。

5-通过调用Add方法添加新行。数据网格显示添加的ID为5(应为6)。

6-消息框显示添加的ID为5。

7-关闭应用程序并重新运行。

8- datagridview显示最后一个ID是6,这是预期的。

在步骤5之后,如果我再次添加新行,则新ID为7,这是正常的,并且datagridview也显示ID 6和7的行。但是仍然显示ID 5的行,其中是错的。 因此,我认为我的IdentitySpecification更新存在问题。 谁能告诉我如何解决这个问题?

这是初始化

dbConnection  = gcnew SqlConnection();
dbConnection->ConnectionString=connString;
dataAdapter->MissingSchemaAction=MissingSchemaAction::AddWithKey;
dataAdapter->SelectCommand = gcnew SqlCommand("SELECT * FROM tblA,dbConnection");
dataAdapter->InsertCommand=gcnew SqlCommand("INSERT INTO tblInA(Name)  VALUES (@Name)",dbConnection);
dataAdapter->InsertCommand->Parameters->Add("@Name",SqlDbType::VarChar,10,"Name");
dbConnection->Open();
dataSet=gcnew DataSet("tblA");
dataAdapter->Fill(dataSet,"tblA");
dataTable=dataSet->Tables["tblA"];
dataGrid->DataSource=nullptr;
dataGrid->DataSource=dataTable;

这是添加方法

dataAdapter->Fill(dataSet,"tblA");
dataTable=dataSet->Tables["tblA"];
row=dataTable->NewRow();
row["Name"]= this->txtName->Text;
dataTable->Rows->Add(row);
MessageBox::Show("added row ID"+row["ID"]->ToString());
dataAdapter->Update(dataSet,"tblA");
dataSet->AcceptChanges();
dataGrid->DataSource=dataTable;
dataGrid->DataSource=nullptr;
dataAdapter->Update(dataSet,"tblA");

提前谢谢!

0 个答案:

没有答案