1
SQLDMO.SQLServer svr = new SQLDMO.SQLServerClass();
2
try
3
{
4
svr.Connect(Encrypt.UNDES("localhost","sa","password");
5
SQLDMO.QueryResults qr = svr.EnumProcesses(-1);
6
int iColPIDNum = -1;
7
int iColDbName = -1;
8
for (int i = 1; i <= qr.Columns; i++)
9
{
10
string strName = qr.get_ColumnName(i);
11
if (strName.ToUpper().Trim() == "SPID")
12
{
13
iColPIDNum = i;
14
}
15
else if (strName.ToUpper().Trim() == "DBNAME")
16
{
17
iColDbName = i;
18
}
19
if (iColPIDNum != -1 && iColDbName != -1)
20
break;
21
}
22
23
for (int i = 1; i <= qr.Rows; i++)
24
{
25
int lPID = qr.GetColumnLong(i, iColPIDNum);
26
string strDBName = qr.GetColumnString(i, iColDbName);
27
if (strDBName.ToUpper() == DBName.ToUpper())
28
svr.KillProcess(lPID);
29
}
30
31
SQLDMO.Restore res = new SQLDMO.RestoreClass();
32
res.Action = 0;
33
res.Files = ServiceFolder;
34
res.Database = DBName;
35
res.ReplaceDatabase = true;
36
res.SQLRestore(svr);
37
}
38
catch
39
{
40
throw;
41
}
42
finally
43
{
44
svr.DisConnect();
45
}
46

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46
