Ошибка Mysqlbackup с использованием MysqlBackup 2.0.4

Я пытаюсь сделать резервную копию моей базы данных с кодом ниже, используя mysqlBackUp 2.0.4

private void button9_Click_1(object sender, EventArgs e)
        {
            try
            {
                string constring = "Data Source=localhost;User Id=root;Password=sulyman;database=accounting_db";
                MySqlConnection conn = new MySqlConnection(constring);
                string file = "D:\\backup.sql";
                cmd = new MySqlCommand();
                cmd.Connection = conn;
                dal.Open();
                MySqlBackup ba = new MySqlBackup(cmd);
                ba.ExportToFile(file);
                dal.close();
                MessageBox.Show("done");
            }
            catch(Exception ex)
            { MessageBox.Show(ex.Message); }


        }

но я получил ошибку

a object reference note set to an instance of an object

на линии

 ba.ExportToFile(file);

где не так с моим кодом, пожалуйста

1 ответ

Решение

Проблема: похоже, что соединение с БД не открыто или вы используете dal.Open() вместо conn.Open(),

  1. Я прокомментировал dal.Open();, dal.Close(); и добавил conn.Open();
  2. Delcared MySqlCommand внутренний метод.
  3. добавленной using заявление

Попробуйте этот код:

private void button9_Click_1(object sender, EventArgs e)
    {
        try
        {
            string constring = "Data Source=localhost;User Id=root;Password=sulyman;database=accounting_db";
            string file = "D:\\backup.sql";
            using(MySqlConnection conn = new MySqlConnection(constring))                
            using(MySqlCommand cmd = new MySqlCommand())
            {
                cmd.Connection = conn;
                conn.Open(); //dal.Open();
                using(MySqlBackup ba = new MySqlBackup(cmd))
                {
                   ba.ExportToFile(file);
                   //dal.close();
                   MessageBox.Show("done");
                }
            }

        catch(Exception ex)
        { MessageBox.Show(ex.Message); }

    }
Другие вопросы по тегам