よろしくお願いします。VB2005でWindowsアプリを勉強しながら開発しています。DataViewの取り扱い法について混乱してしまい、お力をお借りしたいと思い、投稿しました。
DataGridViewにTable1のフィルタ結果を表示させています。
Dim i As String
i = ComboBox1.Text
Dim dv As New DataView
dv.Table = DataSet1._Table1
dv.RowFilter = "コード = '" & i & "'"
DataGridView1.DataSource = dv
このDataGridView1に新しい行を追加してデータを入力し、保存を行いたいのですがいまいちよくわかりません。
行の追加ボタンを押したときのコード。先頭の列に001と表示された行が追加される。
Dim i As String
i = ComboBox1.Text
Dim dv As New DataView
dv.Table = DataSet1._Table1
dv.RowFilter = "コード = '" & i & "'"
DataGridView1.DataSource = dv
Dim drv As DataRowView
drv = dv.AddNew()
drv("コード")="001"
新しい行を追加するのに、Dim drv As DataRowView 以前のコードが、フィルタを行ったときと同じコードなんですが、もっとスマートな方法はありますでしょうか?
あと、ユーザーが行の追加ボタンを押した後に、Form上のDataGridView1に必要事項を入力して、保存ボタンを押すと、追加した行を確定して保存したいのですが、どのようにするのでしょうか?
参考書にはEndEditメソッドを使うとありました。
Dim drv As DataRowView
drv = dv.AddNew()
drv("コード")="001"
drv.EndEdit()
これだと、コード欄に001と入力した時点で確定になってしまうのでは?と思っています。コード欄の他にも列が10行くらいあるのですが、ユーザーが入力しおわり、保存ボタンを押したときにどのように行の追加編集を確定してテーブルに反映するのかわかりません…。参考サイトでも良いので教えてください、よろしくお願いします。
お礼
回答ありがとうございました。 保存ボタンでDataGridView1.EndEdit()を実行したらうまくいきました!ありがとうございました。 あと、何回も同じコードが出てくるろころはメソッドで対応しようと思います。 この度はありがとうございました。