我在Windows应用程序中使用datagridview从MSSQL数据库中获取数据。在网格中进行更改(如编辑行和添加新行)后,我使用 sqlAdapter.update(dataset,tableName)更新数据库。已编辑的行和新添加的行正确地存储在数据库中,
但如果我删除数据网格中的行并将其存储在DataTable中,然后使用 sqlAdapter.update(dataset,tableName)。进行更新,则不会更新数据库。
请注意:在点击以下代码之前,updatedDS中的表格已更新。
public bool UpdateDBwithDataSet(DataSet updatedDS, string dsName)
{
try
{
Concheck();
//sAdapter = new SqlDataAdapter(SqlQuery, con);
CCDcmdBld = new SqlCommandBuilder(sAdapter);
sAdapter.DeleteCommand = CCDcmdBld.GetDeleteCommand(true);
sAdapter.UpdateCommand = CCDcmdBld.GetUpdateCommand(true);
sAdapter.InsertCommand = CCDcmdBld.GetInsertCommand(true);
if (sAdapter.Update(updatedDS, dsName) > 0)
return true;
else
return false;
}
catch (Exception ex)
{
return false;
}
finally
{
if (con.State == ConnectionState.Open) { con.Close(); }
}
}
请告诉我这里有什么问题。 (注意:它也不会抛出任何异常。)
答案 0 :(得分:0)
我找到答案:)
我实际上在做 dsWFSubItem.Tables [dtName] .Rows.RemoveAt(selectedWorkflowRow); ,而我们需要执行以下操作 dsWFSubItem.Tables [dtName] .Rows [selectedWorkflowRow] .Delete(); 。然后 sqlDataAdapter.Update 方法将其从数据库中删除。