2012-04-26 30 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

相关问题