2023年6月21日发(作者:)

C#代码备份还原MSSQL数据库备份数据库1///

2/// 备份配置⽂件中数据库

3///

4///备份⽂件路径

5///6publicstaticbool DataBackupConfigDB(string backupFolder)

7 {

8//获取配置⽂件中sql数据库名

9string dbName ="SqlDB";

10string name = dbName + ng("yyyyMMddHHmmss");

11string procname;

12string sql;

13//创建连接对象

14 SqlConnection conn =new SqlConnection(GetConnStr());

15 (); //打开数据库连接

16//删除逻辑备份设备,但不会删掉备份的数据库⽂件

17 procname ="sp_dropdevice";

18 SqlCommand sqlcmd1 =new SqlCommand(procname, conn);

19 dType = Procedure;

20 SqlParameter sqlpar =new SqlParameter();

21 sqlpar = ("@logicalname", r, 20);

22 ion = ;

23 = dbName;

24try//如果逻辑设备不存在,略去错误

25 {

26 eNonQuery();

27 }

28catch

29 {

30 ("错误的备份⽂件⽬录");

31 }

32//创建逻辑备份设备

33 procname ="sp_addumpdevice";

34 SqlCommand sqlcmd2 =new SqlCommand(procname, conn);

35 dType = Procedure;

36 sqlpar = ("@devtype", r, 20);

37 ion = ;

38 ="disk";

39 sqlpar = ("@logicalname", r, 20);//逻辑设备名

40 ion = ;

41 = dbName;

42 sqlpar = ("@physicalname", ar, 260);//物理设备名

43 ion = ;

44 = backupFolder + name +".bak";

45try

46 {

47int i = eNonQuery();

48 }

49catch (Exception err)

50 {

51string str = e;

52 }

53//备份数据库到指定的数据库⽂件(完全备份)

54 sql ="BACKUP DATABASE "+ dbName +" TO "+ dbName +" WITH INIT";

55 SqlCommand sqlcmd3 =new SqlCommand(sql, conn);

56 dType = ;

57try

58 {

59 eNonQuery();

60 }

61catch (Exception err)

62 {

63string str = e; 64 ();

65returnfalse;

66 }

67 ();//关闭数据库连接

68returntrue;

69 }还原数据库时如果使⽤RESTORE DATABASE dbName(数据库名) from DISK = 'e:' to replacesql错误提⽰:RESTORE ⽆法处理数据库dbName 因为它正由此会话使⽤ 建议在执⾏此操作时使⽤ master 数据库在⽹上终于找到了解决⽅法,具体代码如下:1 ///

2 /// 还原数据库⽂件

3 ///

4 ///数据库备份⽂件(含路径)

5 ///6 publicstaticbool DataRestoreConfigDB(string dbFile)

7 {

8 //sql数据库名

9 string dbName ="SqlDB";

10 //创建连接对象

11 SqlConnection conn =new SqlConnection(GetConnStr());

12 //还原指定的数据库⽂件

13 string sql =("use master ;declare @s varchar(8000);select @s=isnull(@s,'')+' kill '+rtrim(spID) from master..sysprocesseswhere dbid=db_id('{0}');select @s;exec(@s) ;RESTORE DATABASE {1} FROM DISK = N'{2}' with replace",dbName,dbName,dbFile);

14 SqlCommand sqlcmd =new SqlCommand(sql, conn);

15 dType = ;

16 ();

17 try

18 {

19 eNonQuery();

20 }

21 catch (Exception err)

22 {

23 string str = e;

24 ();

25 returnfalse;

26 }

27 ();//关闭数据库连接

28 returntrue;

29 }

2023年6月21日发(作者:)

C#代码备份还原MSSQL数据库备份数据库1///

2/// 备份配置⽂件中数据库

3///

4///备份⽂件路径

5///6publicstaticbool DataBackupConfigDB(string backupFolder)

7 {

8//获取配置⽂件中sql数据库名

9string dbName ="SqlDB";

10string name = dbName + ng("yyyyMMddHHmmss");

11string procname;

12string sql;

13//创建连接对象

14 SqlConnection conn =new SqlConnection(GetConnStr());

15 (); //打开数据库连接

16//删除逻辑备份设备,但不会删掉备份的数据库⽂件

17 procname ="sp_dropdevice";

18 SqlCommand sqlcmd1 =new SqlCommand(procname, conn);

19 dType = Procedure;

20 SqlParameter sqlpar =new SqlParameter();

21 sqlpar = ("@logicalname", r, 20);

22 ion = ;

23 = dbName;

24try//如果逻辑设备不存在,略去错误

25 {

26 eNonQuery();

27 }

28catch

29 {

30 ("错误的备份⽂件⽬录");

31 }

32//创建逻辑备份设备

33 procname ="sp_addumpdevice";

34 SqlCommand sqlcmd2 =new SqlCommand(procname, conn);

35 dType = Procedure;

36 sqlpar = ("@devtype", r, 20);

37 ion = ;

38 ="disk";

39 sqlpar = ("@logicalname", r, 20);//逻辑设备名

40 ion = ;

41 = dbName;

42 sqlpar = ("@physicalname", ar, 260);//物理设备名

43 ion = ;

44 = backupFolder + name +".bak";

45try

46 {

47int i = eNonQuery();

48 }

49catch (Exception err)

50 {

51string str = e;

52 }

53//备份数据库到指定的数据库⽂件(完全备份)

54 sql ="BACKUP DATABASE "+ dbName +" TO "+ dbName +" WITH INIT";

55 SqlCommand sqlcmd3 =new SqlCommand(sql, conn);

56 dType = ;

57try

58 {

59 eNonQuery();

60 }

61catch (Exception err)

62 {

63string str = e; 64 ();

65returnfalse;

66 }

67 ();//关闭数据库连接

68returntrue;

69 }还原数据库时如果使⽤RESTORE DATABASE dbName(数据库名) from DISK = 'e:' to replacesql错误提⽰:RESTORE ⽆法处理数据库dbName 因为它正由此会话使⽤ 建议在执⾏此操作时使⽤ master 数据库在⽹上终于找到了解决⽅法,具体代码如下:1 ///

2 /// 还原数据库⽂件

3 ///

4 ///数据库备份⽂件(含路径)

5 ///6 publicstaticbool DataRestoreConfigDB(string dbFile)

7 {

8 //sql数据库名

9 string dbName ="SqlDB";

10 //创建连接对象

11 SqlConnection conn =new SqlConnection(GetConnStr());

12 //还原指定的数据库⽂件

13 string sql =("use master ;declare @s varchar(8000);select @s=isnull(@s,'')+' kill '+rtrim(spID) from master..sysprocesseswhere dbid=db_id('{0}');select @s;exec(@s) ;RESTORE DATABASE {1} FROM DISK = N'{2}' with replace",dbName,dbName,dbFile);

14 SqlCommand sqlcmd =new SqlCommand(sql, conn);

15 dType = ;

16 ();

17 try

18 {

19 eNonQuery();

20 }

21 catch (Exception err)

22 {

23 string str = e;

24 ();

25 returnfalse;

26 }

27 ();//关闭数据库连接

28 returntrue;

29 }