日期:2014-05-18  浏览次数:21195 次

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