掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Backgroundworkerでデータセット取得について (ID:146922)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> e.Result = dTst (Private dTst as New DataSetをFormで宣言済) この dTst は、他から利用される物ではありませんので、 Form レベルのフィールド変数として宣言するのではなく、 DoWork 内で Dim を使って宣言しましょう。メインスレッド側では、 それを RunWorkerCompleted の e.Result 経由で受け取れます。 > Call Set_SQL_01() --SQL文作成 > OraCmd.CommandText = Str_Sql Str_Sql の宣言が無いことなどから、恐らくは、共通変数 Str_Sql を Set_SQL_01 内で 書き換えているのだと推測しますが、そのような設計は避けるべきです。 たとえば、ワーカースレッド(DoWork)内で Str_Sql を操作している最中に、 メインスレッド(Button_Click 等)でも Str_Sql が書き換えた場合、 意図していた文字列とは異なる情報を受け取ってしまうかもしれません。 この場合は、SQL を Function の戻り値で返すようにして Dim sql As String = Get_SQL_01() OraCmd.CommandText = sql のようなコードにした方が安全でしょう。Set_SQL_01 の処理内容次第ではありますが。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.