C# 使用MySqlBackup.NET导出数据库时出现异常
我使用备份来备份MYSQL数据库C# 使用MySqlBackup.NET导出数据库时出现异常,c#,mysql,mysqlbackup.net,C#,Mysql,Mysqlbackup.net,我使用备份来备份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;data
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)
..
MySqlBackup.dll中发生了类型为“System.NullReferenceException”的第一次意外异常
系统。关键事务:0:http://msdn.microsoft.com/TraceCodes/System/ActivityTracing/2004/07/Reliability/Exception/UnhandledUnhandled exceptionTestAppMysqlDBConnect.vshost.exeSystem.NullReferenceException,mscorlib,版本=4.0.0.0,区域性=neutral,PublicKeyToken=B77A5C561934E089对象引用未设置为对象的实例。在MySql.Data.MySqlClient.MySqlBackup.ExportExecute()处
在MySql.Data.MySqlClient.MySqlBackup.Export()处
在TestAppMysqlDBConnect.Form1.button2上,单击C:\Users\Shashika\Documents\Visual Studio 2010\Projects\TestAppMysqlDBConnect\TestAppMysqlDBConnect\Form1.cs中的(对象发送方,事件参数e):第52行
在System.Windows.Forms.Control.OnClick(EventArgs e)中
..
但是有一个异常,is说有一个空引用异常。当我通过C#程序将数据传递到数据库时。它已成功插入,没有异常。只有当我试图通过C#程序备份数据库时,才会出现此异常。我使用了上面链接中的2个Dll文件。这些是—
MySql.Data.dll
MySqlBackup.dll
我无法解决这个例外。请帮忙
尝试使用此函数(不要忘记必须将MySqlBackup.dll添加到项目引用中):
请包含堆栈跟踪的文本副本。它显示在右下角的框架中。@pst-我想我包括了它now@pst-抱歉迟到了。我想这就是你想要的。是吗?是的。这在这里不是很有用-但它确实显示异常来自MySqlBackup.Export中的某个地方(直接)。@pst-谢谢。我想我现在解决了。MySqlBackup.dll需要另一个名为Ionic.Zip的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);
}
}