数据库更新失败
- C# code
DataRow drForDelete; public void DeleteDate() { drForDelete.Delete(); //调试,着一步骤成功执行。 }//删除drForDelete。 public void UseDatasetToUpdateTheDate()//更新数据库 { DataSet dsUpdates; try { dsUpdates = dsCurrent.GetChanges(); if (dsUpdates != null) { modbdaCurrent.Update(dsUpdates); dsCurrent.AcceptChanges(); } }//来到这里就抛出异常了。 catch (Exception ex) { this.error = ex.ToString(); //错误。 } }
//异常提示:
System.InvalidOperationException: 当传递具有已删除行的 DataRow 集合时,更新要求有效的 DeleteCommand。 在 System.Data.Common.DbDataAdapter.UpdatedRowStatusErrors(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount) 在 System.Data.Common.DbDataAdapter.UpdatedRowStatus(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount) 在 System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMapping tableMapping) 在 System.Data.Common.DbDataAdapter.UpdateFromDataTable(DataTable dataTable, DataTableMapping tableMapping) 在 System.Data.Common.DbDataAdapter.Update(DataSet dataSet, String srcTable) 在 System.Data.Common.DbDataAdapter.Update(DataSet dataSet) 在 DataOleDb.UseDatasetToUpdateTheDate() 位置 c:\Users\Anson\Desktop\第12周\WebSite1\WebSite1\Default.aspx.cs:行号 277
在DataRow里面删除成功,但是无法更新到数据库。求解答
[解决办法]
public bool execSql(string sql)
{
int isUpdateOk = 0;
try
{
openConnection();
comm.CommandType = CommandType.Text;
comm.CommandText = sql;
isUpdateOk = (int)comm.ExecuteNonQuery();
}
catch (Exception e)
{
throw new Exception(e.Message);
}
finally
{
closeConnection();
}
if (isUpdateOk > 0)
{
return true;
}
else
{
return false;
}
}
更新数据库的方法,调用就行