データベース(MDBファイル)関連:DataGridViewのデータが追加されたかどうかチェックする

VB2008で表形式で表示させたMDBファイルにデータが追加されたかどうか調べる実行例サンプルです。

データベース(MDBファイル)関連へ



行が新規追加されたかどうか調べるには、RowState と DataRowState列挙体を使います。
RowState が DataRowState.Added ならば追加されています。

追加されたデータは、Row( 列名 ) で取得できます。

追加前のDataGridView
DataGridViewにデータを追加

DataGridView上で、*印の行に移動しデータを新規入力後、「追加行のチェック」ボタンをクリックした画面です。
福岡間、長崎県を追加しています。
その結果が下のテキストボックスに表示されています。
DataGridViewにデータを追加した結果

■ 実行コード

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim CnString As String
Dim UserID As String = "Admin"
Dim Password As String = ""
Dim SQL As String
Dim sfina As String = "C:\sample1.mdb"
Dim DaAdap As OleDb.OleDbDataAdapter
Dim Tbl As New DataTable()
Dim Bds As New BindingSource

CnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sfina & ";"
CnString = CnString & "User ID=" & UserID & ";"
CnString = CnString & "Jet OLEDB:Database Password=" & Password

'全フィールドの表示
SQL = "SELECT Field1 FROM table1"

'データアダプターの作成
DaAdap = New System.Data.OleDb.OleDbDataAdapter(SQL, CnString)

'データを読む
DaAdap.Fill(Tbl)

'データグリッドに表示
Bds.DataSource = Tbl
DataGridView1.DataSource = Bds

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim tbs As BindingSource = DirectCast(DataGridView1.DataSource, BindingSource)
Dim ttbl As DataTable = DirectCast(tbs.DataSource, DataTable)
Dim ValNew As String

TextBox1.Text = ""
For Each Row As DataRow In ttbl.Rows
'レコードが追加されているかチェック
If Row.RowState = DataRowState.Added Then
ValNew = Row("Field1")
TextBox1.Text = TextBox1.Text & "追加データ:" & ValNew & vbNewLine
End If
Next

End Sub
End Class


Visual Basic 2008 Express Edition実践入門