- PR -

DataGridに表示したDataTableの更新

1
投稿者投稿内容
モンジ
ベテラン
会議室デビュー日: 2005/09/06
投稿数: 85
投稿日時: 2005-12-02 09:33
こんにちは。
いつも大変お世話になっています。

DataGridにテーブルのデータを表示させ、変更したものをテーブルに反映させたいので、
下記の過去レスを参考にして、コードを作成しました。

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=25554&forum=7&6

過去レスでは、問題なく、データの更新が反映されているようなのですが、
私の書いたコードだとうまく機能しません。
(エラーにならないが、テーブルに更新が反映されない)

http://www.atmarkit.co.jp/fdotnet/basics/adonet_index/index.html

も読んでみたのですが、肝心のテーブルへの反映部分が載っていませんでした。

どなたかご教授お願いします。

Dim cn As New OleDb.OleDbConnection
Dim ocmd As New OleDb.OleDbCommand
Dim oDataAdapter As New OleDb.OleDbDataAdapter
Dim oDataset As New DataSet
Dim oDataTable As New DataTable
Dim MDBFile = "C:\Documents and Settings\sanyo\デスクトップ\期限付き案件\外注\入荷PGM.mdb"

☆☆データグリッドに表示させるコード☆☆

'DB接続文字列の設定
cn = New OleDb.OleDbConnection("provider = ""Microsoft.Jet.OLEDB.4.0"";")
cn.ConnectionString &= "Data Source=""" & MDBFile & """;"


'接続を確率
cn.Open()

'接続済みのConnectionを指定
ocmd.Connection = cn

'クエリ文字を指定
ocmd.CommandText = "select T1.品名,T2.発注NO,T2.オーダNO,T2.入荷予定日, " & _
"T2.発注数,T2.支払先名 from THINMO_A as T1,THACCHU_A T2 " & _
"where T1.品目コード = T2.品目コード"

'レコードデータを取得
oDataAdapter.SelectCommand = ocmd
oDataset.Clear()
oDataAdapter.Fill(oDataset, "THINMO_A")

'接続を切断
cn.Close()

oDataTable = oDataset.Tables("THINMO_A")

oDataTable.DefaultView.AllowNew = True
oDataTable.DefaultView.AllowDelete = True
oDataTable.DefaultView.AllowEdit = True
DataGrid1.SetDataBinding(oDataTable.DefaultView, "")


☆☆更新btnを押したときのコード☆☆


'DB接続文字列の設定
cn = New OleDb.OleDbConnection("provider = ""Microsoft.Jet.OLEDB.4.0"";")
cn.ConnectionString &= "Data Source=""" & MDBFile & """;"

'接続を確率
cn.Open()

'接続済みのConnectionを指定
ocmd.Connection = cn

Try
CB = New OleDb.OleDbCommandBuilder(oDataAdapter)

'データベース更新

oDataAdapter.Update(oDataTable)

Catch ex As Exception
MessageBox.Show(ex.ToString, "データ更新エラー")
End Try
1

スキルアップ/キャリアアップ(JOB@IT)