使用SSDT Visual Studio编写报告 - 指导

时间:2017-10-09 19:24:41

标签: sql visual-studio sql-server-data-tools

从广义上讲,有人可以告诉我,我是否朝着正确的方向前进?

我现在知道如何很好地编写SQL查询。

我想开始将多个查询聚合到一个"表单" /模板上(不确定这是否是正确的术语)。

我可以以Excel文件的形式访问大量干净的数据。

我应该能够将excel文件加载到Visual Studio中,然后编写将这些excel文件作为数据库引用的报告,我是对的吗?

我还没有找到一个很棒的SSDT教程,但我一直在寻找。感谢您的任何反馈。

1 个答案:

答案 0 :(得分:0)

首先,我很抱歉我在这里写了一篇小说。我对你的问题的理解是,你正在寻找最佳方式的建筑指导,这不是一个快速的答案。

但是,如果我误解了您的意图并且您实际上只是在寻找如何将excel文件编码为数据库,那么您已经有很多在线文章可以谷歌了。

关于你的建筑问题......它真的要归结为你正在建造的东西选择最好的权衡。我将向您提供一些我已经学到的知识,希望它对您和社区中的其他人有所帮助。

我非常难以建议你使用excel文件作为数据库。  虽然它看起来似乎是最直接的解决方案,但在调试文件锁定问题和处理excel特定错误时,这里的权衡成本非常高,它会因千次削减而死亡。这当然是可能的,但这是我个人在职业生涯早期陷入困境的陷阱。

以下是您对excel文件数据库存在的问题的一些link,这里是第二个link

为了解释您的问题,听起来您正在开发个人ETL应用程序,以提高您的工作效率和公司的指标。电子表格进入您的电子邮件收件箱,电子表格的转换版本会从您的电子邮件发件箱中删除。您希望从历史和比较的角度来看待各部门的数据。我过去也曾多次这样做,这是一个非常合理的目标。

我发现这样做的最好方法是使用SQL Server数据库。您可以在最小的可行产品阶段开始这一点,以便以简单的方式进行此操作。

第一阶段:

  1. 免费下载并安装SQL Server 2016 Express。确保     安装SQL Server 2016时安装localdb。请参阅localdb     instructions了解更多信息。

  2. 在命令行上创建localdb实例。 localDb

  3. 连接到SQL Server中的新localdb实例 connect to instance

  4. 创建一个用于导入数据的新数据库。给它起一个名为“ReportData”Create DB

  5. 的名称
  6. 将从各种业务收到的Excel文件导入新数据库。这个stackoverflow answer给出了如何做的很好的描述。这是alternate example

  7. 如果您收到有关驱动程序的任何错误消息,则可能需要download正确的驱动程序。

  8. 开发您要使用的SQL查询。为简单起见,我只是在这里显示一个基本的select语句,但您可以构建一些复杂的SQL查询来聚合此步骤中的数据。 SQL Queries

  9. 将excel文件中的数据导出为CSV文件或excel文件。您可以通过右键单击“结果”区域并选择“将结果另存为...”enter image description here

  10. 来执行此操作
  11. 手动将结果值复制并粘贴到您想要的Excel模板中。 Manual step for now

  12. 注意第9步很快就会自动完成,但现在更好地了解您的域对象,并考虑以快速迭代方式构建的业务逻辑。

    第二阶段: 在Visual Studio中创建一个新的控制台应用程序,它将数据从数据库转换为Excel文件输出。最有效的方法是使用EPPlus。以下是有关如何执行此操作的详细explanation。 请注意,从详细说明链接运行源代码时,需要先更改输出路径,例如更改为c:\temp。另请注意,还有很多其他Excel电子表格帮助程序包,所以也可以随意查看其他程序包。 EPPlus只是我在项目中取得成功的一个。此控制台应用程序将使用您在上面的步骤7中构建的查询来查询SQL Server数据库。

    第三阶段: 随着时间的推移,您会发​​现公司内的同事和经理想要直接通过网页开始访问您的数据......

    在较高的层面上,您将采取的步骤是:

    1. 备份数据库并将其还原到服务器上。
    2. 实施simple MVC application
    3. 甚至可能构建网页以允许用户导入excel,以便他们不再需要通过电子邮件发送给您。
    4. 另外需要注意的是,还有企业级ETL和报告工具,例如SSIS / SSRS等,如果您正在寻找更复杂的工具集,可以查看,但我你的问题没有给人留下这样的印象。

      我希望这个答案有所帮助而且不会太长。如果有任何步骤不清楚,请告诉我,我知道在一篇文章中有很多信息。