2012-04-26 76 views
0

我已經得到包含基於Postgresql的數據庫的應用程序。我想用我的應用程序獲得這個數據庫的備份。爲前。我想單擊程序菜單中的一個選項,並想獲得數據庫備份的文件。我獲得了該數據庫的所有管理員權限。應用程序在.net 4.0(C#),windows窗體中運行。從我的應用程序備份postgresql數據庫

我該如何解決我的問題?


我已經嘗試過,但它不工作:

string zapytanie = @"pg_dump WFR > C:\kopia"; 
       string pol = Ustawienia.ConnectionString; 
       NpgsqlConnection conn = new NpgsqlConnection(pol); 
       conn.Open(); 
       NpgsqlCommand comm = conn.CreateCommand(); 
       comm.CommandText = zapytanie; 

       comm.ExecuteNonQuery(); 
       conn.Close(); 

錯誤:

錯誤:42601:在語法錯誤或接近 「pg_dump的」

堆棧跟蹤:

w Npgsql.NpgsqlState.<ProcessBackendResponses_Ver_3>d__a.MoveNext() 
    w Npgsql.ForwardsOnlyDataReader.GetNextResponseObject() 
    w Npgsql.ForwardsOnlyDataReader.GetNextRowDescription() 
    w Npgsql.ForwardsOnlyDataReader.NextResult() 
    w Npgsql.ForwardsOnlyDataReader..ctor(IEnumerable`1 dataEnumeration, CommandBehavior behavior, NpgsqlCommand command, NotificationThreadBlock threadBlock, Boolean synchOnReadError) 
    w Npgsql.NpgsqlCommand.GetReader(CommandBehavior cb) 
    w Npgsql.NpgsqlCommand.ExecuteNonQuery() 
    w Faktury_i_Rachunki_2.Forms.FrmKopiaBezp.BtUtworzKopie_Click(Object sender, EventArgs e) w D:\nwfr3\Faktury i Rachunki 2.0\Forms\FrmKopiaBezp.cs:wiersz 38 
+1

您是否試過閱讀postgre手冊?在搜索'postgresql備份命令'時,首先在Google中輸入。解釋爲什麼如果這些命令不夠你 – jgauffin 2012-04-26 07:30:25

+0

我試過了,但它不工作: string zapytanie = @「pg_dump WFR> C:\ kopia」; string pol = Ustawienia.ConnectionString; NpgsqlConnection conn = new NpgsqlConnection(pol); conn.Open(); NpgsqlCommand comm = conn.CreateCommand(); comm.CommandText = zapytanie; comm.ExecuteNonQuery(); conn.Close(); – BKl 2012-04-26 08:09:55

+0

添加到您的問題(格式),而不是作爲評論。還包括任何錯誤消息 – jgauffin 2012-04-26 08:12:50

回答

1

也許你可以在您的應用程序中包含一個pg_dump.exe二進制文件的副本,用於Ms Windows(和所需的dll)。然後用GUI中的適當參數調用它。

(可以使用Dependency Walker找出由pg_dump.exe需要什麼樣的庫)

1

pg_dump是一個工具,而不是一個SQL命令。您需要使用Process.Start執行它。

pg_dump輸出一個SQL腳本。所以你需要一些方法來捕獲SQL腳本表單標準。它可以通過以下方式實現:http://www.c-sharpcorner.com/UploadFile/edwinlima/SystemDiagnosticProcess12052005035444AM/SystemDiagnosticProcess.aspx

+0

謝謝你的幫助。我會檢查它,當我得到解決方案時,我會粘貼在這裏。祝你今天愉快! – BKl 2012-04-26 09:55:37