10

古いMS Accessベースのソリューションを置き換えるクライアント用のWinforms C#アプリケーションに取り組んでいます。これは完全に書き直され、SQL Server をデータベースとして使用するようになりました。このソフトウェアは現在、開発の最終段階にあります。

彼らがちょうど要求したことの 1 つは、ソフトウェアの UI では現在必要なときに実行できないカスタム クエリを実行できるようにすることです。

以前の Access ソリューションでは、クエリ デザイナーを使用して独自のカスタム クエリを作成できました。winforms/Sql Server ソリューションでは、これを行うことはできません。また、SQL を自分で作成する必要もありません。

誰でもこの問題の良い解決策を思いつくことができますか? おそらく、ユーザーがビジネス オブジェクトと "and|or" ロジックのグラフを作成できるようにする Winforms ライブラリです。または、Access でできるように、クエリをカスタマイズできる他の種類の UI (ただし、よりドメイン固有の可能性があります)。

アップデート

これは私が当時探していたものに最も近いため、Yaqubの回答に回答としてフラグを立てました。最終的に、クエリを生成するためのカスタム フォームを作成しました。

ここに画像の説明を入力

2 番目のグループの「Select table ...」コンボボックスには、一番上のリストボックスに追加されたテーブルのみが表示されます。

データベースのレイアウトはほぼ確定したので、必要な結合をインテリジェントに計算するコードを書きました。たとえば、間接的に関連する 2 つのテーブルを最上位グループに追加すると、SQL が生成されるときに、それらを関連付けるために必要な結合が追加されます。データベースのレイアウトが変更された場合、クエリ エディターのコードで FK 参照を簡単に変更できるようにしました。

条件グループの場合、値コントロール (そのグループで 4 番目のコントロールの下) は、フィールドの種類 (テキスト ボックス、数値アップ/ダウン コントロール、日付ピッカー、チェックボックス) に応じて変化します。

「クエリの実行」をクリックすると、結果を表示するグリッドビューを含む別のフォームが表示されます。その結果フォームでは、タブ区切りファイルにエクスポートできます。

私は彼らにこれの最初のバージョンを渡しましたが、彼らは今のところ非常に満足しているようです.

私は Access ルートに行きたくありませんでした。なぜなら、この新しいバージョンのソフトウェアの全体的なポイントは、それらを Access から遠ざけることにあるからです (まあ、すべてのポイントではありません。そこにはさらに多くの機能があるからです)。そこに Access との依存関係を維持することは、大きな後退のように思えました。また、Access に大量のカスタム クエリを保存していて、データベース スキーマを変更すると、クエリが壊れる可能性が高いことも意味します。そのようなデータベースへのアクセスを望んでいません。私の考えでは、それはトラブルを求めています。データベースに触れる必要があるのは、新しいソフトウェアと、私たちが行う自動化されたデータベースのバックアップだけです。他には何もありません。特にユーザーはそうです。

ソフトウェア内で実行するもう 1 つの利点は、クエリ結果に対して後処理を実行できることです。たとえば、.NET コードで記述されたソフトウェアで実行されるかなりの数のデータ分析アルゴリズムがあります。そのため、このインターフェースにフィールドを追加して、これらのアルゴリズムの結果を選択できるようにします。

4

4 に答える 4

8

Visual SQL Query Designerが役立つ場合があります。この機能をどのように実装できるかがわかります。

このツールは、SQL クエリの設計に使用できます。その UI は、SQL Server Management Studio と比較して非常に基本的です。その制限は、OLEDB接続文字列を使用することです。ソースコードはこちらからダウンロードできます。

編集:

EasyQuery.NET WinFormsはオプションですが、無料ではありません。

この記事も少し役立つかもしれません。

于 2013-01-29T16:12:32.423 に答える
3

これに対する従来の「Microsoft」の答えの1つは、Accessを引き続き使用できるようにすることです... SQLサーバーにポイントするだけで、そこでカスタムクエリを作成できます。

凝ったものにしたい場合は、クエリユーザーの役割とアカウントを組み込み、読み取りアクセスのみを許可し、必要に応じて、その組み込みの役割のユーザーアカウントを、リソースガバナーのものを使用してシステム全体の負荷の一部に制限することもできます。 。

Accessで新しいものを実際のコードにロールアップする前にプロトタイピングすることも、恥ずべきことではありません。

于 2013-01-29T18:26:03.963 に答える
3

SQL の SSRS 部分を使用して、ReportBuilder ツールにアクセスできるようにすることを検討しましたか? パワーユーザー向けのまともなインターフェースを備えています。データベースに主キーと外部キーが設定されている場合、それらの関係が認識され、ユーザーが複数テーブルのクエリを作成するのに役立ちます。このツールは SSRS Web ポータルから直接ダウンロードできます。ReportViewer コントロールを使用してレポートを .Net アプリに直接統合するか、単純な HTTP 要求を使用してそれらを Excel、PDF などとしてプルすることができます。

于 2013-02-01T17:04:04.563 に答える
-2

私は同様のツールに取り組みました。基本的に、このツールは、ビジネス ユーザーがビジネス ビューにドラッグ アンド ドロップすることで、データ グリッドにレポートを作成できるようにします。テーブルの上にビューを作成し、フィールドの関係などのメタデータ情報を維持します。メタデータ テーブル。テーブルに参照整合性がある場合、ツールは SQL Server マスター データベースから情報を取得しています。

codeproject で提供されているこのユーティリティから助けを得ました。ドラッグアンドドロップでSQLクエリを作成するこの基本的なアプリケーションを実行でき、必要に応じて変更できます.

http://www.codeproject.com/Articles/43171/A-Visual-SQL-Query-Designer

于 2013-02-05T09:59:50.120 に答える