VB.NET2008で開発しています。
以下のようなコードで、
DataGridViewのあるカラム(column1)のDataSourceに
mdbのテーブルを抽出表示しています。
プログラムを実行して1度目は、うまくグリッド上のコンボボックスに
読み込まれるのですが、
抽出条件kidを変更して読み込んでもグリッド上のコンボボックスの
内容が変わりません。
読み込む前にds上の全datatableをremoveしても同じです。
カラムのテーブル情報を再度取得するには、
どうすればよいでしょうか?
Public da As OleDbDataAdapter
Public ds As New DataSet
Function LoadKoj(ByVal kid As String) As Integer
Dim y As Integer
Dim sql As String
'----OPEN
sql = "select "
sql = sql & "koj.* "
sql = sql & "from 工事 as koj "
sql = sql & "where (koj.工事ID=" & kid & ") "
sql = sql & "order by koj.auto_id "
da = New OleDbDataAdapter(sql, "DB接続文字列")
da.Fill(ds, "koj")
'----コンボに接続
With Form_Koji
.Column1.DataSource = ds.Tables("koj")
.Column1.ValueMember = "ID"
.Column1.DisplayMember = "工事項目"
End With
End Function
ds.Clear()が必要なのではありませんか?
すいません。
再読み込みをする前に
for i=0 to ds.Tables.Count -1
ds.Tables.RemoveAt(i)
next
ds.Clear()
を実行しています。
DataGridViewでグリッド上に直接表示している別のテーブルは、
再読み込みで変更されますが、
DataGridViewのコンボボックスの中身だけが読み込み前のデータを
保持してしまいます。
どこか間違えているのでしょうか
ツイート | ![]() |