0

私は現在、ユーザーが GUI を使用して独自の SQL クエリを「構築」できるシステムをセットアップしています。

Crystal Reports、Report Viewer、Telerik Reporting などのレポートで結果を表示する必要があります。

クエリから返される列がわからないため (ユーザーが選択する列を完全に制御できるため)、このデータをレポートに表示できるかどうかを知る必要があります。

したがって、私の質問は次のとおりです。実際に返される/表示される列を知らなくても、レポート コントロールでクエリの結果を表示することは可能ですか? そしてどうやって?

4

1 に答える 1

1

ウェブアプリかデスクトップか?

これはまさにあなたが探しているものだとは思いませんが、Webアプリでは以前に次のようなものを使用しました:

SqlDataReader reader = cmd.ExecuteReader();
List<string> cols = new List<string>();
for (int i = 0; i < reader.FieldCount; i++)
{
    cols.Add(reader.GetName(i));
}

StringBuilder sb = new StringBuilder();
sb.Append("<table><tr>");
foreach (string s in cols)
{
    sb.Append("<th>"+s+"</th>");
}
sb.Append("</tr>");

while (reader.Read())
{
    sb.Append("<tr>");
    foreach (string s in cols)
    {
        sb.Append("<td>"+reader[s]+"</td>");
    }
sb.Append("</tr>");

}
sb.Append("</table>");

これが最善のアプローチかどうかはわかりません。Excel拡張機能を指定すると、Excelがhtmlテーブルを開くので便利です-フォーマットとすべてを備えているため、Excelで開くオプションを簡単に提供できます.

デスクトップの場合、データグリッドに列を追加してから行を追加するか、ブラウザー ウィンドウで hmtl を開くことができます。

従来の ASP の場合、実際には、必要なものだけを含む別の SO 回答があります。

https://stackoverflow.com/a/1662143/359135

于 2012-04-23T08:32:12.380 に答える