前提・実現したいこと
DataGridViewを使用しDBからデータを取得して、表示・更新・追加・削除を行いたいと考えております。
DataGridViewにDBからデータを取得して、表示するところまではできました。
VBnet
1'フォームロード 2Private Sub Frm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 3 'DB情報 4 Me.bindingSource = New BindingSource() 5 Me.DataGridView1.DataSource = Me.bindingSource 6 Me.Controls.Add(Me.DataGridView1) 7 'データ取得 8 Me.bindingSource.DataSource = CreateDataTable() 9End Sub 10 11'データ取得(表示) 12Private Function CreateDataTable() As DataTable 13 Dim dt As DataTable = New DataTable() 14 'データベース 15 Mdl_Gnl_objConnection.ConnectionString = "Database=" + ***** + ";Data Source=" + ***** + ";User Id=" + ***** + ";Password=" + ***** 16 '接続情報を使ってコネクションを生成 17 Using conn As New MySqlConnection(Mdl_Gnl_objConnection.ConnectionString) 18 'MySQL文とコネクションを設定 19 Using cmd As New MySqlCommand("SELECT カラム1,カラム2,... FORM テーブル1 LEFT OUTER JOIN...", conn) 20 'SELECTコマンドを設定 21 Mdl_DataAdapter.SelectCommand = cmd 22 'SELECTの実行及びフェッチ 23 Mdl_DataAdapter.Fill(dt) 24 'グリッドに表示 25 Grd_YoteiKubun.DataSource = dt 26 End Using 27 End Using 28 Return dt 29End Function
発生している問題
表示はできているのですが、更新・追加・削除ができていない状況です。
自分なりに調べてここまでは書きました。
これすらも当たっているのか正直分かりません…。
コードの書き方が分からない部分はソースコードに記述しました。
DataGridViewからデータを取得して、DBに反映する方法を教えていただきたいです。
また下記ソースコードじたいが間違っていればそちらの指摘もお願い致します。
vbnet
1'データ更新 2Private Sub BtnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnUpdate.Click 3 Dim objCommand As New MySqlCommand 4 Dim SQL As String = "" 5 Dim dt As DataTable = New DataTable() 6 Dim r As DataRow 7 dt = DataGridView1.DataSource 8 9 'データベース 10 Mdl_Gnl_objConnection = New MySqlConnection 11 Mdl_Gnl_objConnection.ConnectionString = "Database=" + ***** + ";Data Source=" + ***** + ";User Id=" + ***** + ";Password=" + ***** 12 'オープン 13 Call Mdl_Gnl_objConnection.Open() 14 objCommand = Mdl_Main_Gnl_objConnection.CreateCommand 15 'データ更新 16 For Each r In dt.Rows 17 Select Case r.RowState 18 Case DataRowState.Added '新規追加 19 'ここの中身が分からない 20 Case DataRowState.Modified '修正 21 'ここの中身が分からない 22 Case DataRowState.Deleted '削除 23 'ここの中身が分からない 24 Case Else '何もしない 25 Continue For 26 End Select 27 objCommand.CommandText = SQL 28 Call objCommand.ExecuteNonQuery() 29 Next 30 'クローズ 31 Call Mdl_Gnl_objConnection.Close() 32 dt.Dispose() 33End Sub
補足情報(FW/ツールのバージョンなど)
.Net 2010
業務上、MySqLを使用しています。