|
分類:[VB.NET/VB2005 以降]
お世話になります。
VB2005/SQLServer2005にて開発を行っています。
現在DBから取得したデータを格納したDataTableをDataGridViewに連結し、
データの更新を行おうとしています。
更新の方法は、Gridの行内に直接入力、新規行に直接追記しています。
更新や追加の行を、GetChanges(DataRowState.Modified/Added)で取得しようとしていますが、
1行でも追加や更新を行うと、全ての行がModifiedとして取得されてしまっています。
下記ソースです。
Dim dtInfo As DataTable = DirectCast(Me.grdInfo.DataSource, DataTable) '' GridのDataSource
Dim DtAdd As DataTable '' 追加行用
Dim DtUpdata As DataTable '' 更新行用
DtAdd = dtInfo.GetChanges(DataRowState.Added)
DtUpdata = dtInfo.GetChanges(DataRowState.Modified)
'' 中略・・・DB更新処理
Call Me.SetGridData() '' DBからデータを取得してGridのDataSourceを再設定
例えば元のデータが10行あるとして、1行追加した場合、
DtAddには1件、DtUpdataには元の全ての10件が入ってしまいます。
または、1件だけ編集した場合でも、10件全てがDtUpdataに入ってしまいます。
以上、ご存知の方が居られましたら、
ご教示の程よろしくおねがいいたします。
|