如何从前端C#中备份和恢复在SQL中创建的数据库 [英] How to take backup and restore database created in SQL from front end C#
本文介绍了如何从前端C#中备份和恢复在SQL中创建的数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何从前端C#中创建在SQL中创建的备份和恢复数据库?
解决方案
//备份代码
try < br $>
{
SaveFileDialog sd = new SaveFileDialog();
sd.Filter =SQL Server数据库备份文件| * .bak;
sd.Title =创建数据库备份;
if(sd.ShowDialog()== DialogResult .OK)
{
obj.OpenConnection();
string sqlStmt = string.Format(备份数据库Jwelleryshop到disk ='{0}',sd.FileName);
SqlCommand cmd2 = new SqlCommand(sqlStmt,obj.Con);
cmd2.ExecuteNonQuery();
MessageBox.Show(Backup Created Suce ssfully);
obj.CloseConnection();
}
}
catch(例外)
{
MessageBox.Show(备份未创建);
}
//恢复代码
尝试
{
OpenFileDialog od = new OpenFileDialog();
od.Filter =SQL Server数据库恢复文件| * .bak;
od.Title =恢复数据库备份;
if(od.ShowDialog()== DialogResult.OK)
{
obj.OpenConnection();
string UseMaster =USE master;
SqlCommand UseMasterCommand = new SqlCommand(UseMaster,obj.Con);
UseMasterCommand.Exec uteNonQuery();
string Alter1 = @ALTER DATABASE [Jwelleryshop] SET Single_User WITH Rollback Immediate;
SqlCommand Alter1Cmd = new SqlCommand (Alter1,obj.Con);
Alter1Cmd.ExecuteNonQuery();
string Restore = string.Format(恢复数据库Jwelleryshop from disk ='{0}',od.FileName);
SqlCommand RestoreCmd = new SqlCommand(Restore,obj.Con);
RestoreCmd.ExecuteNonQuery(); < br $>
string Alter2 = @ALTER DATABASE [Jwelleryshop] SET Multi_User;
SqlCommand Alter2Cmd = new SqlCommand(Alter2,obj.Con);
Alter2Cmd.ExecuteNonQuery();
MessageBox.Show(数据库成功保留,成功消息!);
obj.CloseConnection();
}
}
catch(例外)
{
MessageBox.Show(数据库没有恢复,错误信息! );
}
尝试
http://www.youtube.com/watch?v=5E0q5cZjblk [ ^ ]
http://www.mssqltips.com/sqlservertip/1849/backup-and-restore-sql-server-databases-programmatically-with-smo/ [ ^
使用此代码创建备份文件
string dbname =databasename//使用您的数据库初始化name
saveFileDialog1.FileName = dbname +。bak;
saveFileDialog1.ShowDialog();
string s = null;
s = saveFileDialog1.FileName;
string query =备份数据库+ dbname +to disk ='+ s +';
SqlCommand cmd;
cmd = new SqlCommand(query,con);
cmd.ExecuteNonQuery();
MessageBox.Show(备份创建成功);
用于恢复数据库
string DbName = dbname; //使用您的数据库名称初始化
DialogResult result = openFileDialog1.ShowDialog();
if(result == DialogResult.OK)
{
string query =IF EXISTS(SELECT name FROM master.dbo.sysdatabases WHERE name = N'+ DbName +')ALTER DATABASE+ DbName +SET SINGLE_USER with ROLLBACK IMMEDIATE DROP DATABASE+ DbName +RESTORE DATABASE+ DbName +FROM DISK ='+ openFileDialog1.FileName +';
Thread.Sleep(1000);
SqlCommand cmd = new SqlCommand(query,con);
cmd.ExecuteNonQuery();
MessageBox.Show(数据库成功恢复);
}
How can I take backup and restore database created in SQL from front end C#?
解决方案//Backup Code
try
{
SaveFileDialog sd = new SaveFileDialog();
sd.Filter = "SQL Server database backup files|*.bak";
sd.Title = "Create Database Backup";
if (sd.ShowDialog() == DialogResult.OK)
{
obj.OpenConnection();
string sqlStmt = string.Format("backup database Jwelleryshop to disk='{0}'", sd.FileName);
SqlCommand cmd2 = new SqlCommand(sqlStmt, obj.Con);
cmd2.ExecuteNonQuery();
MessageBox.Show("Backup Created Sucessfully");
obj.CloseConnection();
}
}
catch (Exception)
{
MessageBox.Show("Backup Not Created");
}
//Restore Code
try
{
OpenFileDialog od = new OpenFileDialog();
od.Filter = "SQL Server database Restore files|*.bak";
od.Title = "Restore Database Backup";
if (od.ShowDialog() == DialogResult.OK)
{
obj.OpenConnection ();
string UseMaster = "USE master";
SqlCommand UseMasterCommand = new SqlCommand(UseMaster, obj.Con );
UseMasterCommand.ExecuteNonQuery();
string Alter1 = @"ALTER DATABASE [Jwelleryshop] SET Single_User WITH Rollback Immediate";
SqlCommand Alter1Cmd = new SqlCommand(Alter1, obj.Con);
Alter1Cmd.ExecuteNonQuery();
string Restore = string.Format("Restore database Jwelleryshop from disk='{0}'", od.FileName);
SqlCommand RestoreCmd = new SqlCommand(Restore, obj.Con);
RestoreCmd.ExecuteNonQuery();
string Alter2 = @"ALTER DATABASE [Jwelleryshop] SET Multi_User";
SqlCommand Alter2Cmd = new SqlCommand(Alter2, obj.Con);
Alter2Cmd.ExecuteNonQuery();
MessageBox.Show("Database Retored Sucessfully", "Success Message!");
obj.CloseConnection();
}
}
catch (Exception)
{
MessageBox.Show("Database didn't Restore", "Error Message!");
}
Try
http://www.youtube.com/watch?v=5E0q5cZjblk[^]
http://www.mssqltips.com/sqlservertip/1849/backup-and-restore-sql-server-databases-programmatically-with-smo/[^]
Use this code for create backup file
string dbname="databasename" // initialise with your DB name saveFileDialog1.FileName = dbname+".bak"; saveFileDialog1.ShowDialog(); string s = null; s = saveFileDialog1.FileName; string query="Backup database " + dbname + " to disk='" + s +"'"; SqlCommand cmd; cmd = new SqlCommand(query, con); cmd.ExecuteNonQuery(); MessageBox.Show("Backup Created successfully");
for restoring database
string DbName = dbname; // initialise with your DB name DialogResult result= openFileDialog1.ShowDialog(); if (result == DialogResult.OK) { string query= "IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'" + DbName + "')ALTER DATABASE " + DbName + " SET SINGLE_USER WITH ROLLBACK IMMEDIATE DROP DATABASE " + DbName + " RESTORE DATABASE " + DbName + " FROM DISK = '" + openFileDialog1.FileName + "'"; Thread.Sleep(1000); SqlCommand cmd = new SqlCommand(query, con); cmd.ExecuteNonQuery(); MessageBox.Show("Database Successfully Restored"); }
这篇关于如何从前端C#中备份和恢复在SQL中创建的数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文