- - PR -
Datasetの取得がうまくいかない
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-10-13 14:35
VB.NETのWindowsフォームのボタンクリック時に、
Accessテーブルを見に行く処理を開発しています。 'testテーブルに1行追加 Dim cmd As New OleDbCommand("insert into test (key1) values ('1')", cn) cmd.ExecuteNonQuery() 'detaset作成 Dim da As New OleDbDataAdapter("select * from test", strConn) Dim ds As New DataSet Dim row As DataRow da.Fill(ds, "test") '行数を表示 MsgBox(ds.Tables(0).Rows.Count) 最後のMsgBoxで1件以上の値が表示されるのを期待して いるのですが、何故か「0」で表示されてしまいます。 正確な件数を表示させる方法をご存知の方がいらっしゃい ましたら教えていただけないでしょうか。 ちなみに、以下のように一旦データリーダーで読み込む処理 を挿入すると、最後のMsgBoxでは何故かきちんと件数が表示 されます。 'testテーブルに1行追加 Dim cmd As New OleDbCommand("insert into test (key1) values ('1')", cn) cmd.ExecuteNonQuery() 'データーリーダーで読み込む Dim dr As OleDbDataReader cmd.CommandText = "select * from test" dr = cmd.ExecuteReader dr.Close() 'detaset作成 Dim da As New OleDbDataAdapter("select * from test", strConn) Dim ds As New DataSet Dim row As DataRow da.Fill(ds, "test") '行数を表示 MsgBox(ds.Tables(0).Rows.Count) |
|
投稿日時: 2005-10-13 14:45
はずしているかもしれませんが
Readerを使用した場合、うまくいくとろをみると dr.Close() ってのがミソのような気がします。 Insertした後にcn.Close()するとどうなりますか? |
|
投稿日時: 2005-10-13 14:49
おっしゃるとおり、cn.Close()したら上手く動作しました。
burton999さんどうもありがとうございました! 大変助かりました。 |
1