• ベストアンサー

asp.netからbcpコマンドの実行

asp.netからbcpコマンドを実行し、CSVをエクスポートする方法はありますか? bcpは普通は、コマンドプロンプトから実行しますが、「プログラムからボタンをクリックしたらcsvが吐き出される。」というようなことができますでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • nn1102
  • ベストアンサー率80% (12/15)
回答No.3

何度もすみません。 コードの最後に以下の一行がないとプロセスが開始されませんでした。。。 ◆C# proc.Start(); ◆VB.NET proc.Start()

sublate
質問者

補足

タスクマネージャーで確認すると一瞬cmd.exeが起動しますが、bcpの実行はできませんでした。 Dim proc As New System.Diagnostics.Process() proc.StartInfo.FileName = "bcp" proc.StartInfo.Arguments = """select * from db名.dbo.テーブル名"" queryout ""C:\test_exp.csv"" -S サーバー名 -U sa -P パスワード -N" 'proc.Start() コマンドプロンプトから直に実行すると正しく動きました。

その他の回答 (3)

  • nn1102
  • ベストアンサー率80% (12/15)
回答No.4

こんにちは。 > タスクマネージャーで確認すると一瞬cmd.exeが起動しますが、bcpの実行はできませんでした。 > コマンドプロンプトから直に実行すると正しく動きました。 TCP/IP またはローカル環境で動いて HTTP だと動かないというのは cmd.exe を実行するユーザーのアクセス権の問題だと思われます。 確認されてみてはいかがでしょうか。 権限周りについては、私が最初にこのスレッドに投稿した際に張り付けた URL でも少し言及しています。

sublate
質問者

お礼

ありがとうございました。

sublate
質問者

補足

書き込み先の権限がないだけでした。 ありがとうございました。

  • nn1102
  • ベストアンサー率80% (12/15)
回答No.2

失礼いたしました。.NET だったのですね。 System.Diagnostics.Process を使用すればよいかと思います。 参考 URL に記載されていたコードを貼り付けます。 ◆C# System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo.FileName = "bcp"; proc.StartInfo.Arguments = @"""select * from ims3.dbo.cinfo"" queryout ""C:\filename"" -S server\instance -U sa -P password -N"; ◆VB.NET Dim proc As New System.Diagnostics.Process() proc.StartInfo.FileName = "bcp" proc.StartInfo.Arguments = """select * from ims3.dbo.cinfo"" queryout ""C:\filename"" -S server\instance -U sa -P password -N"

参考URL:
http://www.daniweb.com/forums/thread196713.html#
  • nn1102
  • ベストアンサー率80% (12/15)
回答No.1

こんにちは。 こちらが参考になるかもしれません。 [ASP] : Active Server PagesからSQL ServerのBCPコマンドを使ってデータをインポートしたい http://techbank.jp/Community/blogs/mymio/archive/2008/10/17/2703.aspx

sublate
質問者

補足

phpのexecのように簡単にできる方法はないのでしょうか?

関連するQ&A