0

グリッドに空の行を追加したい。

<asp:TemplateField>
<ItemTemplate>
    <asp:ImageButton id="Insert" runat="server" CausesValidation="false"
    CommandName="Insert" OnClick="GridViewInsert" 
    ImageUrl="~/Images/Grid/Insert.gif" />

GridViewInsertイベントの場合:

Award_Status_List list = new Award_Status_List();
    list.Award_Status_Code = " ";
    list.Award_Status_Desc = " ";
    list.Is_Active = false;
    list.Job_User = " ";
    list.Job_Name = " ";
    list.Job_Date = DateTime.Now;
    _entity.AddToAward_Status_List(list);
    _entity.SaveChanges();
    GridView2.DataBind();

変更を保存すると、次のエラーが発生します。

System.Data.OptimisticConcurrencyExceptionがユーザーコードによって処理されませんでしたMessage="ストアの更新、挿入、または削除ステートメントが予期しない行数(0)に影響しました。エンティティが読み込まれてからエンティティが変更または削除された可能性があります。ObjectStateManagerエントリを更新してください。" Source = "System.Data.Entity" StackTrace:at System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager、IEntityAdapter adapter)at System.Data.EntityClient.EntityAdapter.Update(IEntityStateManager entityCache)at System.Data .Objects.ObjectContext.SaveChanges(Boolean acceptChangesDuringSave)at System.Data.Objects.ObjectContext.SaveChanges()at Default1.GridViewInsert(Object sender、EventArgs e)in c:

4

3 に答える 3

1

Store update、insert、または delete ステートメントが予期しない数の行 (0) に影響を与えました。エンティティが読み込まれてから、エンティティが変更または削除された可能性があります。ObjectStateManager エントリを更新します。この例外は、行が更新されなかったことを知らせています。私の場合、テーブル フィールド ID を追加するのを忘れたために発生しました。そして、Entity Framework は更新するレコードを認識していませんでした。

于 2010-05-07T09:32:00.570 に答える
0

すべてのコードにアクセスできるわけではありませんが、次のようなことが起こっているようです。

  • オブジェクトはメモリ内に作成されます
  • オブジェクトがデータベースに保存され、フィールドの1つが変更されます
  • データベースからオブジェクトを更新せずに、メモリ内のオブジェクトに変更が加えられた
  • 変更を保存してみてください

次に、上記のエラーが発生します。

データバインドする前に変更を保存する必要がありますか?

于 2009-10-03T20:10:27.603 に答える
0

テーブルのフィールドのデータ型がドキュメント SQLite ( Datatypes In SQLite Version 3 - 2.2 Affinity Name Examples )で指定されている要件に準拠していることを確認します。

于 2010-08-24T04:58:54.807 に答える