tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルDataGridViewの自動更新
記事No9805
投稿日: 2010/01/20(Wed) 20:27
投稿者ブーン
VB2005 + MySQL4.0.26 でアプリケーションを開発しています。
OSはWin XP Proです。
VB歴は初心者同然です。

DataGridViewを使用してDBの内容を表示しています。
ある程度時間が経つと自動的にDataGridViewの内容が
更新されます。コードは以下のとおりです。

Dim constring as String
constring="Database=xxx;" _
Persist Security Info=False;" _
PORT=xxx;" _
SERVER=xxx.xxx.xxx.xxx;" _
user id=xxx;" _
Password=xxx"

Dim con As New MySqlConnection
con.ConnectionString = constring

Dim odbcadp As MySqlDataAdapter
Dim dtset As DataSet = New DataSet

Dim cmdlist As New MySqlCommand
cmdlist.Connection = con
cmdlist.CommandText = "select AAA.name " _
                            & "from AAA " _
                            & "where AAA.name='aaa';"

odbcadp = New MySqlDataAdapter(cmdlist.CommandText, cmdlist.Connection)
odbcadp.Fill(dtset, "TEST")

With Me.DataGridView
   .DataSource = dtset.Tables(0)
   .Columns(0).HeaderText = "名前"
End With

odbcadp.Fill(dtset, "TEST")のFillでDBと定期的に接続すると
書籍で記載してありましたのでDataGridViewが自動更新するものだと
認識しています。

DB接続を希望したときだけにする為
上記のコードを以前
con.Open
con.Close
を使用していましたがどちらでも結果は同じでした。

基本的な事が間違っているのでしょうか?

MySQLではcon.Closeでも接続が切断されない現象が
あるのでそのせいなのでしょうか?

この件は日本MySQLユーザー会の掲示板でもありましたが
回答者がいませんでした。

おそらく認識不足だと思うのですが、間違いに気付けません。
ご指摘お願いします。

[ツリー表示へ]
タイトルRe: DataGridViewの自動更新
記事No9812
投稿日: 2010/01/21(Thu) 13:50
投稿者オショウ
> 基本的な事が間違っているのでしょうか?
>
> MySQLではcon.Closeでも接続が切断されない現象が
> あるのでそのせいなのでしょうか?
>
> この件は日本MySQLユーザー会の掲示板でもありましたが
> 回答者がいませんでした。

  直接的な回答ではありません・・・

  そのような状況は、ACCESSのMDB相手でも発生します。
  迅速に更新結果を取得したいならば・・・
  本来、.NETならSQL Server/Oracleの場合、SqlDependencyクラスで
  実現できますが、MySQLのCONNECT/.NETでは、搭載されてません。

  よって、かなり難しいのではないでしょうか・・・

以上。

[ツリー表示へ]
タイトルRe^2: DataGridViewの自動更新
記事No9813
投稿日: 2010/01/21(Thu) 18:41
投稿者ブーン
「オショウ」様 貴重なご意見ありがとうございます。

>   そのような状況は、ACCESSのMDB相手でも発生します。
>   迅速に更新結果を取得したいならば・・・
>   本来、.NETならSQL Server/Oracleの場合、SqlDependencyクラスで
>   実現できますが、MySQLのCONNECT/.NETでは、搭載されてません。
>
>   よって、かなり難しいのではないでしょうか・・・

ACCESSでは経験がないのでわからないのですが、難しいとは参りました。
dispose や nothing を使用したりしましたが、やはり駄目でした。
もう少し考えて見ます。

[ツリー表示へ]