积极答复者
请各位哥哥给说说原因,C#编辑的WinForm窗体代码备份SQL数据库,执行到myComm.ExecuteNonQuery();就catch了。求解答!怎么修改?

问题
-
具体代码如下:
try
{
if (textBox1.Text.Trim() == "" || textBox2.Text.Trim() == "" || comboBox1.Text.Trim() == "")
{
MessageBox.Show("对不起,备份信息不完整!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
else
{
string myFilePath = textBox2.Text.Trim() + "\\" + textBox1.Text.Trim() + ".bak"; //备份文件的路径及名称
if (!File.Exists(myFilePath))
{
SqlConnection myConn = new SqlConnection("Server = " + myServer + ";DataBase = master; uid = " + myUser + ";pwd = " + myPwd);
myConn.Open();
SqlCommand myComm = new SqlCommand();
myComm.CommandText = "BACKUP DATABASE " + comboBox1.Text.Trim() + " TO DISK = '" + myFilePath + "'";
myComm.Connection = myConn;
myComm.ExecuteNonQuery(); //执行备份数据库
myConn.Close();
MessageBox.Show("数据库备份成功!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
this.Close();
}
else
{
MessageBox.Show("同名数据文件已存,请重新命名!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
}
catch
{
MessageBox.Show("数据库备份失败!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}辛苦各位给修改一下!新手!多多关照!谢谢
答案
-
将前2行
和最后5行注释了
你做了异常捕获,但是直接把异常吞了,出啥错误是看不出来了,先去掉这个try catch,看看到底是啥错误。知道错了,就好解决了。
记住,不要吞掉异常!
family as water
- 已标记为答案 Herro wongMicrosoft contingent staff, Moderator 2016年8月9日 6:16
全部回复
-
要贴出异常的原因
有可能是数据库正在使用,或是数据库文件太大,执行命令超时
推荐这个方法
http://www.codeproject.com/KB/database/SQL_Server_2005_Database.aspx?display=Print
专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms
-
将前2行
和最后5行注释了
你做了异常捕获,但是直接把异常吞了,出啥错误是看不出来了,先去掉这个try catch,看看到底是啥错误。知道错了,就好解决了。
记住,不要吞掉异常!
family as water
- 已标记为答案 Herro wongMicrosoft contingent staff, Moderator 2016年8月9日 6:16
-
建议:
你可以先把要执行的SQL语句直接扔到SQL管理器工具里边执行一遍查看结果并检测语法,可以的话再黏贴到代码中。
ASP.NET Forum
Other Discussion Forums
FreeRice Donate
Issues to report
Free Tech Books Search and Download