数据库更新失败
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;
}
}
更新数据库的方法,调用就行