【问题标题】:Exception when using MySqlBackup.NET to export database使用 MySqlBackup.NET 导出数据库时出现异常
【发布时间】:2013-02-18 05:06:08
【问题描述】:

我使用following code 来备份MYSQL 数据库。

    private void button2_Click(object sender, EventArgs e)
    {
        string file = "D:\\backup.sql";
        //string conn = "server=localhost;user=root;pwd=qwerty;database=test;";
        String str = @"server=192.168.1.219;database=abc;userid=sha;password='123';";
        MySqlBackup mb = new MySqlBackup(str);
        mb.ExportInfo.FileName = file;
        mb.Export();
    }

我的堆栈跟踪如下 -

A first chance exception of type 'System.NullReferenceException' occurred in MySqlBackup.dll
System.Transactions Critical: 0 : <TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Critical"><TraceIdentifier>http://msdn.microsoft.com/TraceCodes/System/ActivityTracing/2004/07/Reliability/Exception/Unhandled</TraceIdentifier><Description>Unhandled exception</Description><AppDomain>TestAppMysqlDBConnect.vshost.exe</AppDomain><Exception><ExceptionType>System.NullReferenceException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType><Message>Object reference not set to an instance of an object.</Message><StackTrace>   at MySql.Data.MySqlClient.MySqlBackup.ExportExecute()
   at MySql.Data.MySqlClient.MySqlBackup.Export()
   at TestAppMysqlDBConnect.Form1.button2_Click(Object sender, EventArgs e) in C:\Users\Shashika\Documents\Visual Studio 2010\Projects\TestAppMysqlDBConnect\TestAppMysqlDBConnect\Form1.cs:line 52
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   ..

但是有一个异常,就是说有一个空引用异常。当我通过 C# 程序将数据传递到数据库时。插入成功,无一例外。此异常仅发生在我尝试通过 C# 程序备份数据库时。我使用了上面链接中的 2 个 Dll 文件。那些是 - MySql.Data.dll MySqlBackup.dll

我无法解决这个异常。请帮忙。

【问题讨论】:

  • 请包含堆栈跟踪的文本副本。它显示在右下角的框架中。
  • @pst - 我想我现在包含它
  • @pst - 抱歉迟到了。我想这就是你想要的。不是吗?
  • 是的。它在这里不是很有用 - 但它确实表明异常来自 MySqlBackup.Export 中的某个地方(直接)。
  • @pst - 谢谢。我想我现在解决了。 MySqlBackup.dll 需要另一个名为 Ionic.Zip 的 dll。我将它包含在我的程序中,问题就解决了。再次感谢你。因为您的评论有助于解决这个问题。

标签: c# mysql mysqlbackup.net


【解决方案1】:

尝试使用这个函数(不要忘记你必须将 MySqlBackup.dll 添加到你的项目引用中):

public void Backup()
    {
        try
        {
            // Backup...
            DateTime Time = DateTime.Now;
            year = Time.Year;
            month = Time.Month;
            day = Time.Day;
            hour = Time.Hour;
            minute = Time.Minute;
            second = Time.Second;
            millisecond = Time.Millisecond;

            //Save file to Path with the current date as a filename
            string path;
            path = txb_Path.Text + year + "-" + month + "-" + day + "--" + hour + "-" + minute + "-" + second + ".sql";
            string file = path;
            using (MySqlConnection conn = new MySqlConnection(connectionString))
            {
                using (MySqlCommand cmd = new MySqlCommand())
                {
                    using (MySqlBackup mb = new MySqlBackup(cmd))
                    {
                        cmd.Connection = conn;
                        conn.Open();
                        mb.ExportToFile(file);
                        conn.Close();
                    }
                }
            }
            //Done----
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error , unable to backup!" + ex.Message);
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 2016-07-04
    相关资源
    最近更新 更多