- 題名: DataSet DataView DataRowについて
- 日時: 2004/11/20 3:07:06
- ID: 7538
- この記事の返信元:
- (なし)
- この記事への返信:
- [7544] Re[1]: DataSet DataView DataRowについて2004/11/20 13:00:32
- ツリーを表示
(私はW2k上のFW1.1の環境です。)
私の環境では問題なく動作します。
ビューに設定したフィルタは空ですか。
指定しているのでしたら、誤りはありませんか。
以下のコードはどうなります?
Private dt As New DataTable
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _Handles Button1.Click
Dim rw As DataRow
rw = dt.NewRow
rw("a") = "b"
rw.EndEdit()
Dim v As New DataView(dt, "", "", DataViewRowState.CurrentRows)
dt.Rows.Add(rw)
'Me.DataGrid1.DataSource = v '対象は変わらないのでしなくても一緒。
Dim vr As DataRowView
vr = v.AddNew
vr("a") = "c"
vr.EndEdit()
'Me.DataGrid1.DataSource = v '対象は変わらないのでしなくても一緒。
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
dt.Columns.Add("a", System.Type.GetType("System.String"))
Dim rw As DataRow
rw = dt.NewRow
rw("a") = "a"
rw.EndEdit()
Dim v As New DataView(dt, "", "", DataViewRowState.CurrentRows)
dt.Rows.Add(rw)
Me.DataGrid1.DataSource = v
End Sub
分類:[.NET]
<環境>
【Windowsフォーム】
【VB.NET】
【.NET Framework1.1】
【VisualStudio2003】
<質問内容>
SQLデータアダプターのFillメソッドにて作成された
DataSetのDataTableへ行の追加します。
追加された行を含めDataViewで行の抽出を行い、
DataViewをDataGridへ表示をします。
このときはDataGridに表示されます。
次にDataViewに対して行の追加を行い
再度DataViewをDataGridへ表示しようとすると
DataGridは何も変化がありません。
以下が記述した内容になります。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dim Row As DataRow
Dim tbl As DataTable
Dim View as DataView
Dim ViewRow As DataRowView
.
.
.
sqlDataAdapter.Fill(データセット)
tbl = データセット.Tables("テーブル名")
' 新しい行を追加
Row = tbl.NewRow()
Row(0) = "AAAAA"
.
.
.
tbl.Rows.Add(Row)
' Viewで抽出
View = New DataView(データセット.Tables("テーブル名", "式" ,"ソート", DataViewRowState.CurrentRows)
' データグリッドへ表示
データグリッド.DataSource = View
' ビューへ行を追加
View.AllowNew = True
ViewRow = View.AddNew
ViewRow(0) = "BBBB"
.
.
.
' 追加確定
ViewRow.EndEdit()
' データグリッドへ表示
データグリッド.DataSource = View
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
データセットのRowStateの状態を確認したところ、DataTableへ追加した場合、
DataViewにて追加した場合の両者ともADDEDでした。
DataViewへ追加後DataGridに表示されないのはなぜでしょうか。。。
ご教授、または上記内容のご指摘をいただきたいと思います。
長文になってしまいましたが、なにとぞよろしくお願いします。