2016-04-05 42 views
0

我似乎無法找到與此問題相關的任何內容。所以我有一個使用AngularJS和其他UI(html等)構建的web應用程序,它與Asp.net中的實體框架(不管是API還是MVC,我不確定)連接以獲得其他電話。然後連接到一個sql數據庫進行模型檢索。通過Angularjs從Asp.net執行SQLCMD

我有一個SQLCMD,它執行存儲過程並從數據庫中創建一個新的時間戳記文件。這個想法是,用戶將能夠點擊界面中的一個按鈕,並生成一個文件,而不需要任何人觸摸sqlserver,然後將它們放到excel中。這導致我搜索諸如「WebMethods調用sqlcmd」,「使用Angularjs調用.net webmethods」和「使用ASP.net執行存儲過程」等主題,但似乎沒有任何東西與我所要求的類似這使我相信也許我沒有最好的想法,而且可以做得更好)。

任何想法?只是一些指示我應該從哪裏開始,或者我如何解決這個問題將不勝感激。我甚至不需要返回任何東西,只需要執行以便創建該文件即可。

回答

0

我最終做了一個完全不同的想法,並直接從Angular導出,Export to xls using angularjs,並沒有擔心它的.NET或SQL。

這樣做比較簡單,對我來說更好,因爲用戶實際上可以選擇他們想要導出的內容,而不僅僅是整個數據庫轉儲。

0

你的問題與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。

一個大問題將會是運行sqlcmd.exe的權限(即運行IIS)。

+0

我想我使用MVC,因爲這個應用程序(我繼承了它的工作)有控制器,模型,服務和視圖的文件夾。我應該在哪裏放置這個Process類的實例,以便Angular最終可以調用它?目前,如果我嘗試任何控制器或其他類中的第一行,它在實例化後甚至不會看到「process1」類。我對.net非常陌生,感謝您的意見。 – byteGeist

+0

創建一個BusinessLogic圖層組件並讓MVC引用它。您將通過「添加新的CSProject」(C#Library)....並從MVC創建項目引用到BusinessLogic程序集/ csproj。請參閱https://msdn.microsoft.com/en-us/library/ee658109.aspx – granadaCoder

+0

Oops,它的絕對API,因爲它是添加新類時的前綴。 Idk如果這有很大的不同,但我沒有看到添加新項目的選項(除非你的意思是創建一個新項目,在這種情況下,我寧願不這樣做) – byteGeist