【问题标题】:open external files or applications from sql command using sql server使用 sql server 从 sql 命令打开外部文件或应用程序
【发布时间】:2011-07-07 20:17:37
【问题描述】:

我想使用一些查询从 sql server 打开记事本、word 或 excel 文件。这可能吗?或者是否可以使用 C#.NET winform 应用程序。 ?另外,我希望 sql 使用 dll 文件将其呈现在我的硬盘上。我如何完成这两项任务?也请帮我写代码。

编辑:

我有一个 .net winform 应用程序,它可以访问 sql server 数据库并用于在数据库中插入数据。

我希望当用户从数据库中的表中删除新记录并单击表单上的删除按钮时,删除的数据将导出到 excel 文件并立即打开文件。

这可能吗?

对于导出,我会使用 bcp 实用程序,但如何打开文件?

【问题讨论】:

  • 检查this应该对你有帮助。
  • 实际上想做什么?

标签: c# .net sql sql-server sql-server-2005


【解决方案1】:

您可以在 .NET 中使用如下代码:

VB.NET

 Dim ps As New ProcessStartInfo

    ps.UseShellExecute = True
    ps.FileName = fileName
    Process.Start(ps)

C#.NET

ProcessStartInfo ps = new ProcessStartInfo();
ps.FileName = filename;
Process.Start(ps);

我用它来打开我刚刚创建的 Excel 文件。应该同样适用于其他文件类型(假设安装了正确的程序)。

【讨论】:

    【解决方案2】:

    您可以使用 XP_cmdshell 从 MS SQL 服务器中执行进程。 http://msdn.microsoft.com/en-us/library/ms175046.aspx

    我认为您不会看到应用程序实际打开/运行,因为 MSSQL 作为服务运行,并且服务有自己的桌面,您看不到。但是,您会在任务管理器的进程选项卡中看到正在运行的进程。

    您还可以使用 System.Diagnostics.Process 类从 GUI 应用程序执行其他进程 http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx

    另外,我希望 sql 使用 dll 文件 出示我的硬盘

    我不明白这部分。请清楚地解释您要做什么。这些 dll 文件是什么以及它们的作用和创建者。从表面上看,我会说不,你可以做到这一点。但更重要的是,我建议您重新考虑应用程序的设计。

    【讨论】:

    • @sqlchild,坦率地说,这听起来像是一个非常糟糕的设计。我强烈建议您重新考虑您的要求/设计。例如,您可以将记录移动到“已删除”记录表并为用户提供报告,他们可以在其中查看所有已删除的记录以及删除的人员和时间。或者您可以让您的 Win 表单应用程序首先将记录保存到本地文件并打开该文件,然后删除该记录。如果 sql server 打开并且应用程序/文件,您将看不到它,正如我在回答中解释的那样。 Windows 服务在不同的桌面上运行,您看不到这个桌面。
    猜你喜欢
    • 1970-01-01
    • 2016-05-23
    • 2017-02-25
    • 2011-09-14
    • 1970-01-01
    • 2017-02-15
    • 1970-01-01
    • 2012-11-19
    • 1970-01-01
    相关资源
    最近更新 更多