更新

时间:2017-01-25 13:31:45

标签: c# sql

所以目前正在处理一个项目并坚持这个问题

当我尝试更新SQL数据库中的项目时,我不断收到错误,并且对错误感到困惑。

if (MessageBox.Show("Do You Wish To Update Field Details?", "Update Field Details", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == System.Windows.Forms.DialogResult.Yes)
{
    try
    {
        int fieldID = int.Parse(cmbFieldInfo.SelectedValue.ToString());

        drFields = dsFarmCosts.Tables["fieldDetails"].Rows.Find(fieldID);

        drFields.BeginEdit();
        drFields["fieldName"] = add.FieldName;
        drFields["fieldSize"] = add.FieldSize;
        drFields["FieldLocation"] = add.FieldLocation;
        drFields["fieldHistory"] = add.FieldHistory;
        drFields.EndEdit();
        daFarmCosts.Update(dsFarmCosts, "fieldDetails");

        Reset();

        MessageBox.Show("Field Details Updated");

    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.ToString());
    }
}

错误是

  

System.InvalidOperationException:Update需要有效   使用已修改的行传递DataRow集合时的UpdateCommand。

     

在   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)

     

at System.Data.Common.DbDataAdapter.UpdateFromDataTable(DataTable)   dataTable,DataTableMapping tableMapping)

     

at System.Data.Common.DbDataAdapter.Update(DataSet dataSet,String   srcTable要)

     

at Farm_Costs.field_screens.fieldEditScreen.btnSubmit_Click(Object   发件人,EventArgs e)在H:\ School \ Magee \ Project \ Program \ Farm中   成本\农场成本\字段屏幕\ fieldEditScreen.cs:第114行

艾米的建议或提示?

1 个答案:

答案 0 :(得分:1)

您需要在UpdateCommand DataAdapter上拥有daFarmCosts。类似于以下代码:

...
daFarmCosts .Fill();
dadaFarmCosts UpdateCommand = new SqlCommandBuilder(daFarmCosts).GetUpdateCommand();
...
daFarmCosts .Update();