管理者が自分の作業環境内のコンピューターでクエリを実行し、アクションを (一括で) 実行できるようにする WinForms ユーティリティを c# でまとめています。上司に提示するために、いくつかの模擬プロジェクトを作成し始めました。
ユーティリティは次を表示します。
- データグリッド ビュー内のコンピューターのリスト (名前、稼働時間、オペレーティング システム、場所など)
- 選択したコンピューターで実行できるアクション/クエリのリスト
アクションとクエリは、コンピューターのデータグリッドビューの行をその結果で更新する必要があります。ユーザーは、datagridview の列を並べ替え、コンピューターの場所に基づいて行をフィルター処理できる必要があります。
My Computer の datagridview は次のように読み込まれます: Datagridview => BindingSource => DataSet => Local Database
Util を最初に実行すると、コンピュータのリストが Active Directory グループから読み取られ、ローカル データベースに挿入されます。次に、データベースからのクエリに基づいて、コンピューターの DataTable に値が設定されます。次に、BindingSource が DataTable にバインドされ、datagridview が BindingSource にバインドされてユーザーに表示されます。
選択したコンピューターでアクションを実行すると、結果がコンピューターのデータテーブル (Datagridview に反映される) に追加され、SQLCEDatabase にもコミットされます。
ユーザーが場所のリストから別の場所を選択すると、SQL クエリが実行され、ローカル データベースからの結果がデータ テーブルに再入力されます。
Util には、収集されたデータを保存する必要はありません。実際、Util が最初に実行されると、ローカル データベースからすべてのレコードが削除され、新たに開始されます。
私は自分のデザインをやり過ぎたのではないかと思います。すべてをまとめるより良い方法についてアドバイスをいただければ幸いです。ローカル データベースを廃棄し、すべてのデータを BindingList またはその他の種類のリストを介してメモリに保持する方がよいでしょうか? これにより、クエリに基づいてデータグリッドビューをフィルタリングし、並べ替えを許可できますか?
この投稿が長くて複雑な場合は申し訳ありませんが、他の言い方がわかりません。