2

我需要创建一个简单的独立应用程序,允许用户输入一些数据然后打印报告。我更喜欢使用 SSRS 作为报告引擎,但我也想让我的数据存储非常简单。

我有另一个使用 SQL Server Express 版本作为用户后端的大型智能客户端应用程序。根据经验,SQL Server Express 肯定是一种选择,但是,由于各种最终用户的限制,集成数据库创建和维护过程有点像噩梦。

如果可以的话,SQL Server CE 更容易满足我的需要。我可以将 SQL Server Compact Edition 与 SSRS 一起使用吗?

是的,我知道如果我想使用 SSRS,我仍然需要安装 SQL Server Express。我对这个要求很好。我主要关心的是我宁愿不必在 SQL Server Express 中自动化数据库创建过程,而这正是我提到的其他智能客户端应用程序所要做的。

相反,我宁愿使用本地 SQL Server CE 数据库文件,我可以将其与我的应用程序捆绑在一起并从 SSRS 中连接到该文件。这可以做到吗?

如果这不可能,是否有其他一些简单的替代方案(不包括使用 Crystal Reports)允许简单的报告和使用应用程序安装程序包含数据库文件?

4

1 回答 1

4

您可以将独立的 Reporting Services ReportViewer 控件与来自 SQL Server Compact 数据库文件的 DataSet 一起使用,该文件完全在本地运行,不需要任何 SQL Server 安装。

我在我的 SQL Server Compact Toolbox 中执行此操作,代码与此类似(完整源代码可在http://sqlcetoolbox.codeplex.com获得):

public partial class ReportGrid : UserControl
{
    public ReportGrid()
    {
        InitializeComponent();
    }

    public DataSet DataSet { get; set; }

    public string TableName { get; set; }

    private void ReportGrid_Load(object sender, EventArgs e)
    {
        if (DataSet != null)
        {
            DataSet.DataSetName = TableName;

            Stream rdlc = RdlcHelper.BuildRDLCStream(
                DataSet, TableName);

            reportView.LocalReport.LoadReportDefinition(rdlc);
            reportView.LocalReport.DataSources.Clear();
            reportView.LocalReport.DataSources.Add(
                new ReportDataSource(DataSet.DataSetName, DataSet.Tables[0]));
            reportView.RefreshReport();
        }
    }

}
于 2013-06-27T08:15:08.013 回答