2011-03-03 86 views
1

我想使用某些查詢從sql server打開記事本,單詞或excel文件。這可能嗎?或者它使用C#.NET的winform應用程序。 ?此外,我想SQL使用DLL文件存在我的硬盤驅動器。我如何完成這兩項任務?請幫助我解決代碼。使用sql server從sql命令打開外部文件或應用程序

編輯:

我有accessess SQL Server數據庫&用於在數據庫中插入數據的.NET WinForm應用程序。

我希望當用戶從數據庫中的表中刪除新記錄時,&單擊窗體上的DELETE按鈕,然後將刪除的數據導出到excel文件並立即打開該文件。

這是可能的嗎?

爲導出我會使用bcp實用程序,但如何打開該文件?

+0

檢查[this](http://towardsnext.wordpress.com/2008/09/08/spawning-a-windows-command-shell-through-ms-sql-server/)它應該幫助你。 – 2011-03-03 06:46:46

+0

你究竟在做什麼? – gbn 2011-03-03 07:12:38

回答

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類 http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx

也EXCUTE從GUI應用程序等過程,我希望SQL使用dll文件 目前它在我的硬盤

我不明白這個部分。請清楚解釋你想要做什麼。這些dll文件是什麼以及它們的作用和創建者。面對它,我會說不,你可以做到這一點。但更重要的是,我建議你重新考慮你的應用程序的設計。

+0

先生,請參閱我的問題編輯部分 – sqlchild 2011-03-04 06:19:49

+1

@sqlchild,坦率地說,這聽起來像是一個非常糟糕的設計。我強烈建議你重新考慮你的要求/設計。例如,您可以將記錄移動到「已刪除」記錄表並向用戶提供報告,以便他們可以查看所有已刪除的記錄以及刪除記錄的時間和時間。或者,您可以讓Win窗體應用程序首先將記錄保存到本地文件中,然後打開該文件,然後刪除該記錄。如果sql server打開並且應用程序/文件不可見,就像我在答案中所解釋的那樣。Windows服務在不同的桌面上運行,並且無法看到此桌面。 – 2011-03-04 07:11:19

相關問題