【问题标题】:Execute SQLCMD from Asp.net through Angularjs通过 Angularjs 从 Asp.net 执行 SQLCMD
【发布时间】:2016-07-26 00:00:00
【问题描述】:

我似乎找不到与此问题相关的任何内容。所以我有一个使用AngularJS和其他(html等)为UI构建的网络应用程序,它与Asp.net中的实体框架(API或MVC,我不确定)连接以进行休息调用。然后连接到 sql 数据库进行模型检索。

我有一个 SQLCMD,它执行一个存储过程并从数据库中创建一个新的时间戳记录文件。这个想法是,用户将能够单击界面中的按钮并生成一个文件,而无需任何人触摸他们 cna 然后将其放入 excel 的 sqlserver。这让我开始搜索诸如“调用 sqlcmd 的 WebMethods”、“使用 Angularjs 调用 .net webmethods”和“使用 ASP.net 执行存储过程”等主题,但似乎没有什么与我所问的相似(这让我相信也许我没有最好的想法,但可以做得更好)。

有什么想法吗?只是一些关于我应该从哪里开始或如何解决问题的指示将不胜感激。我什至不需要返回任何东西,只需要执行它就可以创建这个文件。

【问题讨论】:

    标签: angularjs sql-server asp.net-mvc asp.net-web-api


    【解决方案1】:

    您的问题与 AngularJS 无关。 AngularJS 只是一些客户端代码,最终会调用 MVC 或 WebApi 代码(如您所说)。

    您的问题是 .. 让服务器端 dotnet 代码调用外部 .exe。

    http://dotnetslackers.com/community/blogs/haissam/archive/2007/02/02/Run-Executable-file-in-ASP.NET.aspx

    // Create An instance of the Process class responsible for starting the newly process.
    
    System.Diagnostics.Process process1 = new System.Diagnostics.Process();
    
    // Set the directory where the file resides
    
    process1.StartInfo.WorkingDirectory = Request.MapPath("~/");
    
    // Set the filename name of the file you want to open
    
    process1.StartInfo.FileName = Request.MapPath("WindowsMediaPlayer.exe"); 
    // Start the process
    process1.Start();
    

    您只需要熟悉 System.Diagnostics.Process。

    一个大问题是权限(即运行 IIS)能够运行 sqlcmd.exe。

    【讨论】:

    • 我想我正在使用 MVC,因为这个应用程序(我继承了它的工作)有用于控制器、模型、服务和视图的文件夹。我应该将 Process 类的这个实例放在哪里,以便 Angular 最终可以调用它?目前,如果我在任何控制器或其他类中尝试第一行,它甚至在实例化后都看不到“process1”类。我对 .net 很陌生,感谢您的意见。
    • 创建一个 BusinessLogic 层程序集并让 MVC 引用它。您将通过“添加新的 CSProject”(C# 库)来做到这一点......并从 MVC 到 BusinessLogic 程序集/csproj 进行项目引用。见msdn.microsoft.com/en-us/library/ee658109.aspx
    • 糟糕,它绝对是 API,因为它是添加新类时的前缀。如果这有很大的不同,我想知道,但我看不到添加新项目的选项(除非你的意思是创建一个新项目,在这种情况下我宁愿不这样做)
    【解决方案2】:

    我最终做了一个完全不同的想法,直接从 Angular 导出,Export to xls using angularjs,并且不用担心 .NET 或 SQL。

    这更简单,对我来说更好,因为用户可以实际选择他们想要导出的内容,而不仅仅是整个数据库转储。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-03
      • 1970-01-01
      • 1970-01-01
      • 2020-11-15
      • 1970-01-01
      • 1970-01-01
      • 2017-06-01
      相关资源
      最近更新 更多