2023年6月21日发(作者:)
C#代码备份还原MSSQL数据库备份数据库1///
2/// 备份配置⽂件中数据库
3///
4///备份⽂件路径
5///
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 ///
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///
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 ///
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 }
发布评论