如何从前端C#中备份和恢复在SQL中创建的数据库 [英] How to take backup and restore database created in SQL from front end C#

查看:59
本文介绍了如何从前端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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆