私のDALでsqlクエリを実行するBackgroundWorkerがビューにあります。foreachループ中にDALから値を返すBackgroundWorker
私の見解では、ユーザーが作業が完了していることを知るように回転を続けるプログレスバーもあります。
SQLクエリは、私がどこのいずれかの条件に移入することを、条件List<string>
の一つとして受け取り、そのコードはこのようなものです:あなたは上記気づくよう
using (SqlConnection conn = new SqlConnection(_myHost))
{
conn.Open();
foreach (string item in myList)
{
query = "select * from (" +
"//big query with inner joins here" +
") a "
using (SqlCommand cmd = new SqlCommand(query, conn))
{
SqlDataReader reader = cmd.ExecuteReader();
dt.Load(reader);
}
}
、私が通ります私のリスト内のすべてのアイテムは、where句(上記は省略)で個別にクエリを実行し、出力がある場合、foreachが完了したデータテーブルに出力を追加して、ビューレイヤに返し、グリッドビューのデータソースになります。
私は、クエリのどの%が完了したかをサーバーに問い合わせることはできませんが、foreachループの完了%をユーザーに提供できる可能性があります。
私は何を把握しようとしていますがへの道である:int i
カウンターを追加、私はシンプルで検出された可能性が私の見解に
戻り、ループの現在の反復、および各foreachの上でそれをインクリメントする、または何が質問されているかを知らせるために、おそらく最初にstring item
があります。
コードが実行されると、その値を自分のビューに戻す方法がわかりません。私はC#4タプルを考慮しましたが、メソッドが完了した後に返されるのはforeach
の実行中ではなく、返されるため動作しません。
アイデア?
あなたがイベントを発生させるか、呼び出すことができます。この
のようなものを書くことができますループ内から委譲します。 – RQDQ
_view_とはどういう意味ですか?これはWinFormsのアプリですか、WPFのものなのでしょうか?また、このコードはBackgroundWorkerのDoWorkメソッドの一部ですか? – Steve
そのWinforms App ... shoud'veも同様にそれをタグ付けしました。ごめんなさい。 –