2016-04-05 3 views
0

この問題に関連するものは何も見つかりませんでした。だから私はAngularJSとAsp.net(どちらのAPIまたはMVC、私はわからない)のエンティティフレームワークに接続するUIのための残りの部分(HTMLなど)を使用して構築しているWebアプリケーションが安い呼び出しです。それはモデル検索のためにSQLデータベースに接続します。Asp.netからAngularjsを介してSQLCMDを実行

私はストアドプロシージャを実行し、データベースからレコードの新しいタイムスタンプ付きファイルを作成するSQLCMDを持っています。アイデアは、ユーザーがインターフェイスのボタンをクリックできるようになり、ファイルが生成され、誰もがsqlserverに触れなくてもすぐにExcelに入れられるようになります。これは、 "WebMethodsを呼び出してsqlcmd"、 "Angletjsを使って.net webmethodsを呼び出す"、 "ASP.netでストアドプロシージャを実行する"のようなトピックの検索で私を導いていますが、何も私が求めているものに似ているようです私はおそらく私は最高のアイデアを持っていないと思うかもしれませんし、それはより良いことができます)。

アイデア?私がどこから始めなければならないのか、問題にどのように取り組むべきかについてのいくつかの指針は、非常に高く評価されます。私は何も返す必要はなく、実行するだけでこのファイルを作成することができます。

答えて

0

まったく別の考え方をして、Angular(Export to xls using angularjs)から直接エクスポートしましたが、.NETまたはSQLについて心配していませんでした。

これは単純な方法であり、実際にはデータベースの合計ダンプだけでなく、エクスポートするものを実際に選択できるので、私にとってはより良い方法でした。

0

問題はAngularJSとは関係ありません。 AngularJSは、最終的にMVCまたはWebApiコードを呼び出す一部のクライアント側コードです(あなたの状態で)。

問題はサーバーサイドのドットネットコードが外部の.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を実行できることです。

+0

私はこのアプリケーション(私はそれのための仕事を継承した)は、コントローラ、モデル、サービス、ビューのフォルダを持っているので、私はMVCを使用していると思う。 Processクラスのこのインスタンスをどこに配置して、Angularは最終的にそれを呼び出すことができますか?現在、コントローラや他のクラスの最初の行を試すと、インスタンス化後に "process1"クラスが表示されません。私は非常にあなたの入力のためのネット。 – byteGeist

+0

BusinessLogicレイヤーアセンブリを作成し、MVCに参照させます。これを "Add new CSProject"(C#Library)...とし、MVCからBusinessLogicアセンブリ/ csprojへのプロジェクト参照を作成します。 https://msdn.microsoft.com/en-us/library/ee658109.aspx – granadaCoder

+0

を参照してください。新しいクラスが追加されたときの接頭辞以来、間違いなくAPIです。 Idkが大きな違いを生むのであれば、新しいプロジェクトを追加するオプションはありません(新しいプロジェクトを作成することを意味する場合を除き、そうしないといけません) – byteGeist

関連する問題