none
DataRowVersion列挙体のそれぞれの値について RRS feed

  • 質問

  • 行の状態とバージョン

    http://msdn2.microsoft.com/ja-jp/library/ww3k31w0(VS.80).aspx

     

    上記Webページの

    「各 DataRowVersion 列挙値の簡単な説明を次の表に示します。」

    の箇所の「Default」の説明で、

    AddedModified、または Unchanged 行の既定の行バージョンは、Current です。」

    についてなのですが、

     

    DataRow.RowState が「Unchanged」の場合、「Default」「Current」共に同じ値が

    取得できると思っていたのですが、この解釈は間違っているのでしょうか?

     

    valueDefault = dataRow[0, DataRowVersion.Default];

    valueCurrent = dataRow[0, DataRowVersion.Current];

     

    この場合、valueDefault と valueCurrent はイコールになると。

     

     

    DataSet に BindingSource 経由で連結した TextBox の値を変更後、

     

    DataRowView dataRowView = (DataRowView)BindingSource.Current;

    DataRow dataRow = dataRowView.Row;

     

    この様に取得した DataRow の RowState は「Unchanged」なのですが、

     

    valueDefault:変更後の値

    valueCurrent:変更前の値

     

    と、違う値が返ってきます。

    ちなみに、DataRowVersion を指定しないで値を取得すると、変更後の値(「valueDefault」と

    同じ値)が返ってきます。

     

    value = dataRow[0];

     

    AddedModified、または Unchanged 行の既定の行バージョンは、Current です。」

    この文章はどの様に解釈するんでしょうか?

     

    宜しくお願い致します。

     

    2008年2月27日 4:39

回答

  • ご提示されたページには以下のように書いてあります。

     

    「Added、Modified、または Unchanged 行の既定の行バージョンは、Current です。Deleted 行の既定の行バージョンは、Original です。Detached 行の既定の行バージョンは、Proposed です。」

     

    これに付け加えるとすれば以下のようになります。

     

    「Added、Modified、または Unchanged 行の既定の行バージョンは、Current です。ただし、レコードの編集中はProposedです。Deleted 行の既定の行バージョンは、Original です。Detached 行の既定の行バージョンは、Proposed です。」

     

    Defaultというのは、Current、Default、Proposedのどれか一つの固定的な省略値ではなく、行の状況に応じて、最も適したDataRowVersion値が自動的に指定される動的なものだと考えれば良いでしょう。

    2008年2月27日 5:59
    モデレータ

すべての返信

  • ご提示されたページには以下のように書いてあります。

     

    「Added、Modified、または Unchanged 行の既定の行バージョンは、Current です。Deleted 行の既定の行バージョンは、Original です。Detached 行の既定の行バージョンは、Proposed です。」

     

    これに付け加えるとすれば以下のようになります。

     

    「Added、Modified、または Unchanged 行の既定の行バージョンは、Current です。ただし、レコードの編集中はProposedです。Deleted 行の既定の行バージョンは、Original です。Detached 行の既定の行バージョンは、Proposed です。」

     

    Defaultというのは、Current、Default、Proposedのどれか一つの固定的な省略値ではなく、行の状況に応じて、最も適したDataRowVersion値が自動的に指定される動的なものだと考えれば良いでしょう。

    2008年2月27日 5:59
    モデレータ
  • trapemiyaさん、回答ありがとうございます。

     

    追記説明、適切で十分理解できました。

     

    ありがとうございました。

     

    2008年2月27日 23:51