我的表格中的字段“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");
提前谢谢!