DataGridView
データベースを利用してDataGridViewに自動で構築されたコードは実はそれだけでは、機能しない。というのが判った。
・保存ボタンを押した時に、以下の自動生成されたコードが実行される。
・レコードを追加しただけなら、これでうまくいくが、レコードを修正や削除した場合エラーになる。「更新には、変更された行を含む DataRow コレクションが渡されたとき、有効な UpdateCommand が必要です。」というエラー表示。
Private Sub T_リンクマスタBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Me.Validate() Me.T_リンクマスタBindingSource.EndEdit() Me.T_リンクマスタTableAdapter.Update(Me.LinkDataSet.T_リンクマスタ) End Sub
コードを変更する必要あり。
Me.Validate() Me.T_リンクマスタBindingSource.EndEdit() Dim Cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\link.mdb") Dim SQLCm As OleDbCommand = Cn.CreateCommand Dim Adapter As New OleDbDataAdapter(SQLCm) Dim objCommandBuilder As New OleDb.OleDbCommandBuilder(Adapter) Cn.Close() Cn = Nothing
のように変更したらうまくいった。
これでホントに正しいのかは自信なし。
追記:2008-05-07
上記コードではうまく機能しなかった。