【问题标题】:ANY Crystal Reports working example with SQLite?任何带有 SQLite 的 Crystal Reports 工作示例?
【发布时间】:2011-12-05 09:54:16
【问题描述】:

有人在使用 Crystal Report 和 SQLite 吗?任何信息都会很棒。 SQLite 是世界上最快的数据库之一,但不知何故没有如何连接这两者的示例。

我不需要任何修辞的答案..我需要真正的代码..开始。

或者您可以告诉我其他替代 CR 的解决方案。

编辑:对于像我这样的新手。您需要做的就是添加新数据集,如屏幕截图所示,创建将在此报告中使用的同名表,添加将在报告中使用的相同字段。然后使用 Database Expert 添加此数据集,将字段添加到报告中,它们将出现 :)

这是我在 C# 中运行的方式 netikslumai1 是 CrystalReportDocument,darbineLenta 是我的带有数据库名称的字符串变量。 DataSet1 是 COMPONENT 不是我们在屏幕截图中添加的数据集。

            netikslumai1.Load(Application.StartupPath + "\\netikslumai.rpt");

        netikslumai1.SetDataSource(dataSet1.Tables[darbineLenta]);

        crystalReportViewer1.ReportSource = netikslumai1;
        crystalReportViewer1.Refresh();

【问题讨论】:

    标签: c# sqlite crystal-reports


    【解决方案1】:

    您无法在水晶报表中从数据库专家直接定位您的 SQLite 数据库。要连接 SQLite 和 Crystal Report,首先需要为数据库创建一个系统 DSN。为此

    Control Panel 
    --> Administrative Tools
    --> Data Sources(ODBC)
    --> System DSN
    --> Create New by clicking Add 
    --> Select SQLite ODBC Driver 
    --> Give a custom name for DSN and 
    --> Now browse and select your database.
    

    在 Crystal Report 中,您可以找到您在其中创建的 DSN Create New Connection --> ODBC (RDO) --> Select the DSN。如果您找到 DSN,那么您数据库中的所有表格都将自动添加到您的水晶报表中。希望对您有所帮助,祝您编码愉快。

    编辑:

    首先将一个数据集控件添加到类型为 dataset1.xsd 的项目中,并将数据库的所有值填充到数据集。然后通过Database Expert --> Project Data --> ADO .Net datasets 选择并显示在您的报告中。

    【讨论】:

    • 但是我的数据库文件是在运行时自动创建的,所以我可以在运行时分配它吗? SQlite 之所以好,是因为它的移动性..
    • 这里的数据库文件是什么意思?是数据库表的值吗?
    • 因此,如果我执行您的方法并导入我的字段.. 但在自定义机器中将没有 DSN,并且会有我在开发机器中用于分配 DSN 的此类文件 - 这将起作用在客户的电脑上?我不需要在客户机器上设置 DSN 吗?我想要零配置解决方案,所以不需要在客户电脑上设置任何东西。
    • @Tommix,很好。所以,不要像我编辑的那样做。
    • 抱歉,“dataset1.xsd 类型”是从 DataSet.Tables["tablename"] 导出的,是什么意思?要不然是啥?因为在 DataSet 组件中我没有看到任何 xsd ......抱歉,有一些愚蠢的问题......这是我第一次尝试使用 CR。因为我在项目中有 DataSet 组件,但它没有显示在“ADO .Net 数据集”中
    【解决方案2】:

    您可以使用要在报表中显示的相同字段创建数据集对象,使用完全相同相同的字段名称。使用此数据集对象设计您的报告。最后使用您的 SQLite 数据库在代码中填充报告。

    【讨论】:

    • 我正在使用这个:netikslumai1.Load(Application.StartupPath + "\\netikslumai.rpt"); netikslumai1.SetDataSource(dataSet1.Tables["darbineLenta"]); crystalReportViewer1.ReportSource = netikslumai1; crystalReportViewer1.Refresh(); 并且我得到“报告没有表格”错误。
    • 这个想法是只使用数据集来设计报表:在水晶报表的设计视图中放置字段、分组等。然后你使用你的数据库访问层来检索你想在上面显示的信息。如果字段名称匹配,应该没问题。我会用一些代码更新 awnser。
    • 谢谢您,我真的很感谢您的帮助,但我认为较低的答案与您的建议有点相同,所以它对我有用..但我不能同时选择两者作为好答案..原因他更快我选择了他。不过也谢谢你!我没有足够的分数,甚至无法将您的答案标记为有用。
    • 是的,现在看起来一样了,完全没问题。
    猜你喜欢
    • 2018-06-24
    • 2010-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    • 1970-01-01
    相关资源
    最近更新 更多