如何用SQLDMO在ASP.NET页面下实现数据库的备份与恢复

我们知道,用SQLDMO可以实现对数据库的备份与恢复,下面给出简单的实现方法。
首先需要添加对SQLDMO引用

1.实现数据库的备份:
 1/// <summary>
 2        /// 数据库备份
 3        /// </summary>
 4        /// <returns>备份是否成功</returns>

 5        public bool DbBackup()
 6        {
 7            string path = CreatePath();
 8            SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
 9            SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
10            try
11            {
12                oSQLServer.LoginSecure = false;
13                oSQLServer.Connect(server,uid, pwd);
14                oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
15                oBackup.Database = database;
16                oBackup.Files = path;
17                oBackup.BackupSetName = database;
18                oBackup.BackupSetDescription = "数据库备份";
19                oBackup.Initialize = true;
20                oBackup.SQLBackup(oSQLServer);
21
22                return true;
23            }

24            catch(Exception ex)
25            {
26                return false;
27                throw ex;
28            }

29            finally
30            {
31                oSQLServer.DisConnect();
32            }

33        }

2.实现数据库恢复:
在恢复时要注意先杀掉当前数据库的所有进程
 1/// <summary>
 2        /// 数据库恢复
 3        /// </summary>

 4        public string DbRestore()
 5        {
 6            if(exepro()!=true)//执行存储过程
 7            {
 8                return "操作失败";
 9            }

10            else
11            {
12                SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();
13                SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
14                try
15                {
16                    exepro();
17                    oSQLServer.LoginSecure = false;
18                    oSQLServer.Connect(server, uid, pwd);
19                    oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
20                    oRestore.Database = database;
21                    ///自行修改
22                    oRestore.Files = @"d:\aaa\aaa.bak";
23                    oRestore.FileNumber = 1;
24                    oRestore.ReplaceDatabase = true;
25                    oRestore.SQLRestore(oSQLServer);
26
27                    return "ok";
28                }

29                catch(Exception e)
30                {
31                    return "恢复数据库失败";
32                    throw e;
33                }

34                finally
35                {
36                    oSQLServer.DisConnect();
37                }

38            }

39        }

40        
41        /// <summary>
42        /// 杀死当前库的所有进程
43        /// </summary>
44        /// <returns></returns>

45        private bool exepro()
46        {
47
48            SqlConnection conn1 = new SqlConnection("server="+server+";uid="+uid+";pwd="+pwd+";database=master");
49            SqlCommand cmd = new SqlCommand("killspid",conn1);
50            cmd.CommandType = CommandType.StoredProcedure;
51            cmd.Parameters.Add("@dbname","aaa");
52            try
53            {
54                conn1.Open();
55                cmd.ExecuteNonQuery();
56                return true;
57            }

58            catch(Exception ex)
59            {
60                return false;
61            }

62            finally
63            {
64                conn1.Close();
65            }

66        }

完整的操作类如下:
  1using System;
  2using System.Collections;
  3using System.Data;
  4using System.Data.SqlClient;
  5
  6namespace DbBackUp
  7{
  8    /// <summary>
  9    /// 创建人:Terrylee
 10    /// 创建时间:2005年8月1日
 11    /// 功能描述:实现数据库的备份和还原
 12    /// 更新记录:
 13    /// </summary>

 14    public class DbOperate
 15    {    
 16        /// <summary>
 17        /// 服务器
 18        /// </summary>

 19        private string server;
 20        
 21        /// <summary>
 22        /// 登录名
 23        /// </summary>

 24        private string uid;
 25        
 26        /// <summary>
 27        /// 登录密码
 28        /// </summary>

 29        private string pwd;
 30        
 31        /// <summary>
 32        /// 要操作的数据库
 33        /// </summary>

 34        private string database;
 35        
 36        /// <summary>
 37        /// 数据库连接字符串
 38        /// </summary>

 39        private string conn;
 40
 41        /// <summary>
 42        /// DbOperate类的构造函数
 43        /// 在这里进行字符串的切割,获取服务器,登录名,密码,数据库
 44        /// </summary>

 45        public DbOperate()
 46        {
 47            conn = System.Configuration.ConfigurationSettings.AppSettings["constr"].ToString();
 48            server = StringCut(conn,"server=",";");
 49            uid = StringCut(conn,"uid=",";");
 50            pwd = StringCut(conn,"pwd=",";");
 51            database = StringCut(conn,"database=",";");
 52        }

 53        
 54        /// <summary>
 55        /// 切割字符串
 56        /// </summary>
 57        /// <param name="str"></param>
 58        /// <param name="bg"></param>
 59        /// <param name="ed"></param>
 60        /// <returns></returns>

 61        public string StringCut(string str,string bg,string ed)
 62        {
 63            string sub;
 64            sub=str.Substring(str.IndexOf(bg)+bg.Length);
 65            sub=sub.Substring(0,sub.IndexOf(";"));
 66            return sub;
 67        }

 68        
 69        /// <summary>
 70        /// 构造文件名
 71        /// </summary>
 72        /// <returns>文件名</returns>

 73        private string CreatePath()
 74        {
 75            string CurrTime = System.DateTime.Now.ToString();
 76            CurrTime = CurrTime.Replace("-","");
 77            CurrTime = CurrTime.Replace(":","");
 78            CurrTime = CurrTime.Replace(" ","");
 79            CurrTime = CurrTime.Substring(0,12);
 80            string path = @"d:\\aaa\\";
 81            path += database;
 82            path += "_db_";
 83            path += CurrTime;
 84            path += ".BAK";
 85            return path;
 86        }

 87
 88        /// <summary>
 89        /// 数据库备份
 90        /// </summary>
 91        /// <returns>备份是否成功</returns>

 92        public bool DbBackup()
 93        {
 94            string path = CreatePath();
 95            SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
 96            SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
 97            try
 98            {
 99                oSQLServer.LoginSecure = false;
100                oSQLServer.Connect(server,uid, pwd);
101                oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
102                oBackup.Database = database;
103                oBackup.Files = path;
104                oBackup.BackupSetName = database;
105                oBackup.BackupSetDescription = "数据库备份";
106                oBackup.Initialize = true;
107                oBackup.SQLBackup(oSQLServer);
108
109                return true;
110            }

111            catch(Exception ex)
112            {
113                return false;
114                throw ex;
115            }

116            finally
117            {
118                oSQLServer.DisConnect();
119            }

120        }

121
122        /// <summary>
123        /// 数据库恢复
124        /// </summary>

125        public string DbRestore()
126        {
127            if(exepro()!=true)//执行存储过程
128            {
129                return "操作失败";
130            }

131            else
132            {
133                SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();
134                SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
135                try
136                {
137                    exepro();
138                    oSQLServer.LoginSecure = false;
139                    oSQLServer.Connect(server, uid, pwd);
140                    oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
141                    oRestore.Database = database;
142                    ///自行修改
143                    oRestore.Files = @"d:\aaa\aaa.bak";
144                    oRestore.FileNumber = 1;
145                    oRestore.ReplaceDatabase = true;
146                    oRestore.SQLRestore(oSQLServer);
147
148                    return "ok";
149                }

150                catch(Exception e)
151                {
152                    return "恢复数据库失败";
153                    throw e;
154                }

155                finally
156                {
157                    oSQLServer.DisConnect();
158                }

159            }

160        }

161        
162        /// <summary>
163        /// 杀死当前库的所有进程
164        /// </summary>
165        /// <returns></returns>

166        private bool exepro()
167        {
168
169            SqlConnection conn1 = new SqlConnection("server="+server+";uid="+uid+";pwd="+pwd+";database=master");
170            SqlCommand cmd = new SqlCommand("killspid",conn1);
171            cmd.CommandType = CommandType.StoredProcedure;
172            cmd.Parameters.Add("@dbname","aaa");
173            try
174            {
175                conn1.Open();
176                cmd.ExecuteNonQuery();
177                return true;
178            }

179            catch(Exception ex)
180            {
181                return false;
182            }

183            finally
184            {
185                conn1.Close();
186            }

187        }

188
189    }

190
191}

192

在相应的按钮
1<asp:Button id="wbtn_Backup" runat="server" Width="60px" Text="备 份" CssClass="Button"></asp:Button>
单击事件里调用即可:
 1/// <summary>
 2        /// 备份按钮
 3        /// </summary>
 4        /// <param name="sender"></param>
 5        /// <param name="e"></param>

 6        private void wbtn_Backup_Click(object sender, System.EventArgs e)
 7        {
 8            DbOperate dbop = new DbOperate();
 9            dbop.DbBackup();
10        }
^_^
作者:TerryLee
出处:http://terrylee.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted @ 2005-10-13 10:17 TerryLee 阅读(12585) 评论(389)  编辑 收藏 网摘

评论共4页: 上一页 1 2 3 4 
  回复  引用    
#301楼2007-03-13 15:22 | 冰点深蓝[未注册用户]
也给我发份吧! xpfxh@126.com

我的站出现
Microsoft SQL-DMO (ODBC SQLState: 08004) 错误 '800a038f'

[Microsoft][ODBC SQL Server Driver][SQL Server]未能在 sysdatabases 中找到数据库 'databack.bak' 所对应的条目。没有找到具有该名称的条目。请确保正确地输入了名称。 [Microsoft][ODBC SQL Server Driver][SQL Server]BACKUP DATABASE 操作异常终止。

/admin0910/A_left_data.asp,行 23

  回复  引用    
#302楼2007-03-13 23:53 | Frank[未注册用户]
System.Runtime.InteropServices.COMException (0x80040C81): [Microsoft][ODBC SQL Server Driver][SQL Server]无法打开备份设备 'c:\\inetpub\\wwwroot\\eBrokerage\\DBBackup\\eBrokerage_db_200731323503.BAK'。设备出现错误或设备脱机。详细信息请参阅 SQL Server 错误日志。 [Microsoft][ODBC SQL Server Driver][SQL Server]BACKUP DATABASE 操作异常终止。 at SQLDMO.BackupClass.SQLBackup(_SQLServer ServerObject) at eBrokerage.dataInitialize.DBBackup(String para_path) in c:\inetpub\wwwroot\eBrokerage\datainfo\dataInitialize.aspx.vb:line 165

我有这个问题,恳请指点。 非常感谢!

fanchongling@yahoo.com.cn

  回复  引用    
#303楼2007-03-14 12:12 | 夏坚[未注册用户]
楼主,也给我发一份,多谢了..
xiajian19820809@163.com

  回复  引用    
#304楼2007-03-19 00:00 | andy[未注册用户]
andy.luxin@gmail.com
烦请给我发一份了

  回复  引用    
#305楼2007-03-20 11:45 | 亦周[未注册用户]
楼主`很不错哦``我最近也在学asp.net``这个例子很实用``
可以发一份源代码给我吗``如果你忙``我就自己看着你的代码弄`
如果不忙```就谢谢你哦``呵呵``多多指教``
sebastianud@yahoo.com

  回复  引用    
#306楼2007-03-23 13:47 | cy[未注册用户]
能不能把这份源代码发给我 谢谢
caoyang027@126.com

  回复  引用    
#307楼2007-03-26 17:14 | sober[未注册用户]
感谢楼主,麻烦您也给我发一份研究一下
sinease@163.com

  回复  引用    
#308楼2007-03-26 21:47 | 胡碧生[未注册用户]
能不能把这份源代码发给我 谢谢 ,,我正在学ASP.NET
  回复  引用    
#309楼2007-03-26 21:48 | 胡碧生[未注册用户]
能不能把这份源代码发给我 谢谢 ,,我正在学ASP.NET
hubisheng520@163.com
不盛感激!

  回复  引用    
#310楼2007-04-09 23:21 | Assmin[未注册用户]
我也要。搂主能不能发1一份完整的源码给我
Assmin@163.com

  回复  引用    
#311楼2007-04-25 22:22 | qq[未注册用户]
给我一份源代码,谢谢!我的邮箱是 xw_wl@163.com
  回复  引用    
#312楼2007-04-25 22:24 | qq[未注册用户]
给我一份源代码,我的邮箱是 xw_wl@163.com
  回复  引用    
#313楼2007-04-26 14:30 | 飞翔[未注册用户]
我的邮箱是ljx791858@sina.com
麻烦给我发一份数据库备份和恢复原代码好吗,还有杀进程的存储过程
谢谢!!!

  回复  引用    
#314楼2007-04-26 14:32 | 飞翔[未注册用户]
我的QQ号码是121793729,E_mail:ljx791858@sina.com
我看了你的数据库备份和恢复代码,还是挺不错的呀,能不能发一份完整的代码和相关的存储过程呢

  回复  引用    
#315楼2007-05-28 15:37 | guyue[未注册用户]
搂主能不能发份完整源代码发给我 谢谢
85989815@163.com

  回复  引用    
#316楼2007-06-06 17:20 | fishell[未注册用户]
仔细看了下搂主的,那个存储过程写的很不错啊,这两天我也用c++写了个备份还原,但我用c#写老是导入不了SQLDMO.DLL,请教楼主知道原因吗?版本原因还是别的什么,期待楼主的回复:)
  回复  引用    
#317楼2007-06-20 13:12 | nancy[未注册用户]
麻烦您也发一份完整的给我好吗?
邮箱mlh03068@sina.com
谢谢!!!

  回复  引用    
#318楼2007-07-08 20:36 | 超人犹加[未注册用户]
麻烦您也发一份完整的给我好吗?
E-Mail:nbxj2001@hotmail.com
谢谢!

  回复  引用  查看    
#319楼2007-07-31 23:25 | Nick-pccai      
pccai1983@hotmail.com,最近也在烦这个,谢谢也给我来份!
  回复  引用    
#320楼2007-08-02 17:35 | 标[未注册用户]
lai_gb@163.com
我也要一份,谢谢楼主!!^o^

  回复  引用    
#321楼2007-08-02 17:37 | 标[未注册用户]
啊是啊,我想问一下,如果Web服务器跟数据库服务器不是在同一个服务器上的话可以把数据库备份到Web服务器上么?好像我之前用过SQLDMO都不能备份到Web服务器上,只能备份到数据库服务器上…………是什么原因呢?请指教……
  回复  引用    
#322楼2007-08-06 10:11 | Rey[未注册用户]
[Microsoft][ODBC SQL Server Driver][SQL Server]无法打开备份设备 'E:\EHR2005\EHR\DbBackUp\ehr_db_200786100623.BAK'。设备出现错误或设备脱机。详细信息请参阅 SQL Server 错误日志。
[Microsoft][ODBC SQL Server Driver][SQL Server]BACKUP DATABASE 操作异常终止。

出现这种错误是什么原因呀,帮忙解答一下

  回复  引用    
#323楼2007-08-17 14:38 | ln1901[未注册用户]
SQL SERVER提供几种数据库备份方式,
一种是完整备份 (Full Backup), 第二种是差异备份(Differential Backup), 第三种是日志备份, 第四种是文件备份

完整备份是把整个数据库做个备份,差异备份只是备份进行了完整备份后数据库里的新变化。当数据库很大时, 完整备份很费空间和时间,可以根据情况定期做,比如每周或者每月做一次完整备份。 其它时间可以进行差异备份,比如每天一次,或者半天一次, 也可以结合进行日志备份。文件备份是直接备份数据库的数据和日志文件。和在操作系统里做备份一样.

在恢复的时候,只要先恢复完整备份,然后恢复最后一个差异备份就可以。如果有日志备份,还需要恢复差异备份后所做的日志备份。

备份种类通过 备份对象的Action属性来决定.
oBackup.Action=0 && 参数: 0 - 完整备份,1- 差异备份, 2- 文件备份, 3 -日志备份

  回复  引用    
#324楼2007-08-18 09:41 | Astar[未注册用户]
顶,好不容易找到的资料,但我测试不成功。本人是新手。。。麻烦楼主给我也发一份吧。Email:passvcword@126.com 谢谢了!!!
  回复  引用    
#325楼2007-08-20 22:03 | Tom[未注册用户]
给我也来一份。。。谢谢!!!
hamulin@126.com

  回复  引用    
#326楼2007-08-21 11:59 | Tom[未注册用户]
不用传了,搞定。非常感谢楼主,替我解决了不少问题!!!
  回复  引用    
#327楼2007-08-23 11:47 | xiazhi33[未注册用户]
谢谢!
来份啊!
xiazhi33@163.com

  回复  引用    
#328楼2007-09-07 14:45 | chuzhaowei[未注册用户]

来晚了,能给份给我吗?!!!!!!
yxczw2003@yahoo.com.cn

  回复  引用  查看    
#329楼2007-09-13 15:07 | 最后一滴血      
谢谢楼主!
楼主辛苦了!!!!!!
我又学到了一点。

  回复  引用    
#330楼2007-09-28 11:10 | shark_seu[未注册用户]
辛苦楼主,我现在也在学习这方面的知识
可不可以发个给我啊
zylove_520@163.com

  回复  引用    
#331楼2007-11-01 10:24 | 潛水游[未注册用户]
老大,你也用這種方法,我以為就我才用這種落後的技術.
你可是我奮鬥的目標呀

  回复  引用    
#332楼2007-11-02 14:41 | Nicholas.Simon[未注册用户]
楼主发我一份完整的谢谢..!
yangsiyao@gmail.com

  回复  引用    
#333楼2007-11-02 14:49 | df[未注册用户]
楼主发我一份完整的谢谢..!
5573805@qq.com

  回复  引用    
#334楼2007-11-18 14:51 | 刘楠[未注册用户]
liuminteng.com@163.com
能发我一份吗,关于数据库备份,还原,和清空的,谢谢楼主!!^o^

  回复  引用    
#335楼2007-11-21 10:08 | 许建民[未注册用户]
请高手给我答案
  回复  引用    
#336楼2007-11-30 18:09 | Michael8119[未注册用户]
楼住,给个killspid的存储过程。谢先。
Email:dx_qin@126.com

  回复  引用  查看    
#337楼2007-12-03 10:32 | kkjewxf      
楼主你好!不知道我这份帖子发的晚不晚 我想要一份你备份和还原的整个实例
可否发给我一份 先谢谢楼主了!4647287@163.com

  回复  引用  查看    
#338楼2007-12-04 16:53 | Stephen.Ju      
报错:不能用 KILL 来取消您自己的进程。
请问是什么原因啊?

  回复  引用    
#339楼2007-12-17 16:12 | du_lk[未注册用户]
楼主你好!我想要一份你备份和还原的整个实例
可否发给我一份 先谢谢楼主了!dulikun1985@163.com

  回复  引用    
#340楼2008-01-11 16:25 | 未注册[未注册用户]
我也想要一份.. 谢谢博主啦.. luoyabai.94@163.com
  回复  引用    
#341楼2008-01-11 17:12 | 未注册[未注册用户]
呵呵.. 代码测试通过了..
博主的文章都很及时.. 再次谢谢了...

  回复  引用    
#342楼2008-01-14 10:38 | lizqiang[未注册用户]
我也要一份,谢谢了lizqiang_2006@163.com
  回复  引用  查看    
#343楼2008-01-14 11:47 | Caesar      
麻烦也发我份吧 谢谢.

"对象名 'sysprocesses' 无效。\r\n名为 'getspid' 的游标不存在。\r\n名为 'getspid' 的游标不存在。\r\n名为 'getspid' 的游标不存在。\r\n名为 'getspid' 的游标不存在。"

这个问题要如何解决呢? 我已经在数据库中建了你上面給的存储过程.

  回复  引用  查看    
#344楼2008-01-14 12:01 | Caesar      
看了您的<如何用SQLDMO在ASP.NET页面下实现数据库的备份与恢复 >这篇文章.
也在数据库中执行了您給的存储过程.
如下:
CREATE PROCEDURE killspid
/*----------------------------------
创建人:Terrylee
创建事件:2005年8月1日
功能说明:
参数说明:
----------------------------------*/
(
@dbname varchar(20) --数据库的名称
)
AS
BEGIN
DECLARE @sql nvarchar(500)
DECLARE @spid int
SET @sql='declare getspid cursor for select spid from sysprocesses where dbid=db_id('''+@dbname+''')'
EXECUTE (@sql)
OPEN getspid
FETCH NEXT FROM getspid INTO @spid
WHILE @@fetch_status<>-1
BEGIN
EXECUTE('kill '+@spid)
FETCH NEXT FROM getspid INTO @spid
END
CLOSE getspid
DEALLOCATE getspid
END
GO
但是当我运行程序时提示了以下错误.
ex
{"对象名 'sysprocesses' 无效。\r\n名为 'getspid' 的游标不存在。\r\n名为 'getspid' 的游标不存在。\r\n名为 'getspid' 的游标不存在。\r\n名为 'getspid' 的游标不存在。"}
[System.Data.SqlClient.SqlException]: {"对象名 'sysprocesses' 无效。\r\n名为 'getspid' 的游标不存在。\r\n名为 'getspid' 的游标不存在。\r\n名为 'getspid' 的游标不存在。\r\n名为 'getspid' 的游标不存在。"}
Data: {System.Collections.ListDictionaryInternal}
HelpLink: null
InnerException: null
Message: "对象名 'sysprocesses' 无效。\r\n名为 'getspid' 的游标不存在。\r\n名为 'getspid' 的游标不存在。\r\n名为 'getspid' 的游标不存在。\r\n名为 'getspid' 的游标不存在。"
Source: ".Net SqlClient Data Provider" ... ...

请问这个问题如何解决?
是否可以发我份代码?
我一直在关注您的文章,受益匪浅。
可否发我份学习代码?
thanks.

  回复  引用  查看    
#345楼2008-01-14 13:07 | Caesar      
OK 问题已经解决.^_^
  回复  引用    
#346楼2008-01-17 16:19 | 海涛刘[未注册用户]
[Microsoft][ODBC SQL Server Driver][SQL Server]无法打开备份设备 'E:\\aaa\\MyTest_db_200811716150.BAK'。出现操作系统错误 3(系统找不到指定的路径。)。
我也出现这个问题,请问楼主怎么解决啊。我的邮箱liuhaitao-84625@163.com,可以给我发一份源代码吗?

  回复  引用    
#347楼2008-01-18 01:29 | marklin[未注册用户]
Microsoft OLE DB Provider for SQL Server 錯誤 '80004005'

[DBNETLIB][ConnectionWrite (WrapperWrite()).]一般網路錯誤。 查閱您的網路文件。

  回复  引用    
#348楼2008-01-24 10:38 | lizqiang[未注册用户]
lizqiang_2006@163.com
请麻烦你给我发一份,不胜感激~~~~~~!!!

  回复  引用    
#349楼2008-01-30 20:47 | aadon[未注册用户]
楼主.麻烦您也发份吧 ,急要啊...
aadonsd@126.com 谢谢啦

  回复  引用    
#350楼2008-02-24 10:06 | zhulinli[未注册用户]
楼主,能给我一份完整的源代码吗?谢谢!
我的邮箱:eilao@163.com
再次致谢!

  回复  引用    
#351楼2008-02-24 10:07 | zhulinli[未注册用户]
能给我一份源代码吗?
谢谢!
eilao@163.com

  回复  引用    
#352楼2008-02-26 17:27 | dafei[未注册用户]
可不可以发一份asp.net里实现数据库备份和恢复完整的代码给我啊!
我想学习学习!
我的邮箱 chenjunwei52114@163.com
谢谢!非常感谢!!

  回复  引用    
#353楼2008-02-29 19:12 | and1[未注册用户]
我也随他们脸皮厚直接就向李哥索要一份源码...290310398@qq.com..谢谢!
  回复  引用    
#354楼2008-03-04 15:13 | jazz[未注册用户]
呵呵,我也想要一份ranjun_liu@126.com谢谢
  回复  引用    
#355楼2008-03-05 14:36 | dongxiao[未注册用户]
我也要: xd121@126.com 谢谢你先啊!
  回复  引用    
#356楼2008-03-05 16:31 | dongxiao[未注册用户]
老大,我的也是这种错误:怎么解决呀,我想不出来呀

[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server 不存在或访问被拒绝
[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()).

  回复  引用    
#357楼2008-03-07 12:32 | dongxiao[未注册用户]
上一个解决了,又出来一个:老大,怎么解决?

[Microsoft][ODBC SQL Server Driver][SQL Server]无法打开备份设备 'd:\\aaa\\master_db_200678121529.BAK'。设备出现错误或设备脱机。详细信息请参阅 SQL Server 错误日志。 [Microsoft][ODBC SQL Server Driver][SQL Server]BACKUP DATABASE 操作异常终止。

  回复  引用    
#358楼2008-03-07 17:07 | chenen[未注册用户]
楼主,能不能发1一份完整的源码,让我学习学习,不胜感激!
存储过程也要~~~~~~~~~~~~!!!谢谢~~~~~~~~~!!!
邮箱:chenen201@163.com

  回复  引用    
#359楼2008-03-07 17:19 | chenen[未注册用户]
楼主,可不可以发一份一份完整的源码给我,让我学习学习,不胜感激!
存储过程也要~~~~~~~~~~~~!!!谢谢~~~~~~~~~!!!
邮箱:chenen201@163.com

  回复  引用    
#360楼2008-03-08 11:29 | ricklee[未注册用户]
你好楼主:
我用你的代码去测试,怎么不管是备份还是恢复都不行!问题出在:oSQLServer.Connect(server, uid, pwd); 我的server=localhost,uid=sa,pwd=sql.
报错如下:"[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server 不存在或访问被拒绝\n[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect())."

望楼主帮忙看一下!

谢谢
麻烦楼主顺便给我发一份你的完整代码!ricklee830111@163.com

  回复  引用    
#361楼2008-03-08 11:44 | xue[未注册用户]
[Microsoft][ODBC SQL Server Driver][SQL Server]无法打开备份设备 'F:\'。详细信息请参阅 SQL Server 错误日志。
[Microsoft][ODBC SQL Server Driver][SQL Server]BACKUP DATABASE 操作异常终止。
楼主大哥,我用C#做数据库备份的时候出现这个问题,一直解决不了,请帮一下忙.邮件:yan-yan-xiao-hu@163.com

  回复  引用    
#362楼2008-03-28 11:40 | 朱禹[未注册用户]
[Microsoft][ODBC SQL Server Driver][SQL Server]无法打开备份设备 'D:\UserMainTain.bak'。出现操作系统错误 21(设备未就绪。)。
[Microsoft][ODBC SQL Server Driver][SQL Server]BACKUP DATABASE 正在异常终止。

楼主大哥,可不可以也发一份一份完整的源码给我,不胜感激!
谢谢 !!!
邮箱:ngzhy2160@163.com

  回复  引用  查看    
#363楼2008-04-16 20:42 | 高_超      
不错的文章.正在学习........
  回复  引用  查看    
#364楼2008-04-23 12:27 | Happiness...      
不错不错,很好很好,学习学习
  回复  引用    
#365楼2008-04-23 20:08 | 代远川[未注册用户]
看了有些还是不大明白,能否给我一份源码,有点急。
再次谢谢了

  回复  引用    
#366楼2008-04-23 20:32 | 代远川[未注册用户]
我的邮箱yuancd1985@hotmail.com
  回复  引用    
#367楼2008-04-28 12:54 | kevinzwt[未注册用户]
楼主,我想问一下如果数据库是空间商提供的,自己无法在master数据库中添加存储过程,这样的话该怎么解决了? 谢谢楼主,希望能帮小弟解决一下!
  回复  引用    
#368楼2008-05-24 21:28 | 月季叶[未注册用户]
老师,你能给我发份完整的代码吗,谢谢你了
  回复  引用    
#369楼2008-06-04 10:55 | jores[未注册用户]
[Microsoft][ODBC SQL Server Driver][SQL Server]无法打开备份设备 'D:\UserMainTain.bak'。出现操作系统错误 21(设备未就绪。)。
[Microsoft][ODBC SQL Server Driver][SQL Server]BACKUP DATABASE 正在异常终止。
也就这个错``郁闷得死
楼主大哥。。麻烦了
发份原码给我。。顺便告诉我错在哪
Email:makun0624@163.com

  回复  引用    
#370楼2008-06-17 23:59 | lori[未注册用户]
太谢谢你了,能不能发给我一份完整代码,谢谢!
  回复  引用    
#371楼2008-06-18 10:32 | 牛中刚[未注册用户]
我在调试我的程序的时候,出现这个错误提示:
在 sysdatabases 中找不到数据库 'sysdb' 所对应的条目
不知道是什么原因,我都没有用到sysdb数据库
请楼主帮忙分析一下
还有能不能把你的那个数据库备份与还原程序给我一份看看
邮箱:nzgang@126.com
谢谢搂主!

  回复  引用    
#372楼2008-07-09 01:08 | 2349625[未注册用户]
ex = {"[Microsoft][ODBC SQL Server Driver][SQL Server]无法打开备份设备 'F:\\testst_db_200807090056.BAK'。设备出现错误或设备脱机。详细信息请参阅 SQL Server 错误日志。\n[Microsoft][ODBC SQL Server Driver][SQL Server]BACKUP DATABASE 操作异常终止。"}

连接本地服务器测试的时候没有出现这个问题,连接远程就出现了,麻烦楼主讲解下~~~~

  回复  引用    
#373楼2008-07-15 14:06 | 啊坤[未注册用户]
能发份完整的代码给我的吗?我的邮箱:lishikun1985@163.com 谢谢!!!
  回复  引用  查看    
#374楼2008-08-26 15:21 | virus      
不知道可否指定备份的时间跨度呢,比如说我只是想备份1-3月的,同时删除数据库的1-3月数据,然后恢复1-3月数据,不影响现有不是1-3月的数据
谢谢

  回复  引用  查看    
#375楼[楼主]2008-08-27 09:47 | TerryLee      
@virus
用SQLDMO无法实现这一点,只能使用SQL语句了。

  回复  引用    
#376楼2008-09-24 15:57 | lijie[未注册用户]
楼主,你好,我在备份的时候 将备份的路径,备份的名称,备份的时间添加到数据库的一个表里,恢复的时候可以读出数据里里面表的数据,然后针对那一天的备份进行还原,出现如下情况,当表里有3条数据,当我点击其中一个进行还原的时候,还原能成功,但是同时也就删除这个备份表里面的数据了,这是为什么呀
  回复  引用    
#377楼2008-10-09 15:19 | shunxin[未注册用户]
楼主,我也是借鉴的你的代码做的,备份是没有问题,但是还原都要还原两次才可以
执行第一次的时候就出现下面的错误:
System.Runtime.InteropServices.COMException (0x80040000): [Microsoft][ODBC SQL Server Driver][DBMSLPCN]SQL Server 不存在或访问被拒绝 [Microsoft][ODBC SQL Server Driver][DBMSLPCN]ConnectionOpen (Connect()). 在 DBOperate.DBRestore(String file) 位置 e:\ASPNETEXAMPLEE\NBAnSheng\App_Code\DBOperate.cs:行号 176 在 beifen.Button2_Click(Object sender, EventArgs e) 位置 e:\ASPNETEXAMPLEE\NBAnSheng\beifen.aspx.cs:行号 54

在执行第二次才能还原成功
请进行指导,这是为什么?

  回复  引用    
#378楼2008-11-09 23:55 | 林小军[未注册用户]
大哥,麻烦给我发一份全的代码看看。
我现在的情况:
备份的时候好用,还原的时候也是必须的执行两次。
麻烦了。
谢谢

chengang0535@163.com

谢谢。

  回复  引用  查看    
#379楼[楼主]2008-11-10 00:06 | TerryLee      
@林小军
2005年的文章,源代码早就找不到了。
再说,在SQL Server 2005中,又提供了新的编程模型。

  回复  引用    
#380楼2008-11-16 22:02 | shengforever[未注册用户]
搂主能不能发份完整源代码发给我 谢谢
311zhangsheng@sina.com

  回复  引用  查看    
#381楼[楼主]2008-11-17 23:18 | TerryLee      
引用--------------------------------------------------
shengforever: 搂主能不能发份完整源代码发给我 谢谢
311zhangsheng@sina.com
--------------------------------------------------------
我上面已经说了很多遍了,怎么就看不到呢?

  回复  引用    
#382楼2008-11-18 18:31 | IT菜[未注册用户]
看了你的几篇文章,很实用!!!!
真是牛人,敬佩ing......

  回复  引用  查看    
#383楼[楼主]2008-11-19 09:30 | TerryLee      
@IT菜
谢谢:)

  回复  引用    
#384楼2008-11-19 09:57 | 菜鸟先飞[未注册用户]
看了你几编ASP.NET的教程,小弟受益匪浅,比我们学校老师教的更详细,更容易明白~因为小弟是初学ASP.NET,现在正在做一个用ASP.NET开发的WEB系统,在数据备份和还原那里被卡住了~我看了你上面写的代码,由于基础差,还有点不明白,不知能否给个完整的代码(最好把HTML代码也一起附上)给小弟学习,小弟感激不尽
  回复  引用    
#385楼2008-11-19 09:59 | 菜鸟先飞[未注册用户]
忘了说我的邮箱了~
邮箱地址:qinjian1005@163.com
(可以的话~加下我的Q,以后有什么难题,望您不吝赐教!Q:86605695)

  回复  引用  查看    
#386楼[楼主]2008-11-19 23:41 | TerryLee      
@菜鸟先飞
代码已经找不到了,呵呵,很多年之前的:)

// 你可以留言把你的MSN发给我,我不上QQ:)

  回复  引用  查看    
#387楼2008-12-08 16:54 | 二叉树      
请问如何在客户端对数据库进行备份和还原呢。
可不可以在还原之前重启一下数据库,或者杀掉所有操作被还原的数据库的进程?
请麻烦楼主指定下,我正在做一个本地的数据库备份还原模块。

  回复  引用  查看    
#388楼[楼主]2008-12-15 10:05 | TerryLee      
@二叉树
现在可以使用SQL Server 2005下的SQLSMO类库,非常方便

  回复  引用  查看    
#389楼2008-12-16 13:37 | 小 严      
太帅了,我一直在找这方面的代码
  回复  引用  查看    
#390楼[楼主]2008-12-17 11:29 | TerryLee      
@小 严
:)

  回复  引用  查看    
#391楼2008-12-27 09:32 | 青鳥銜花      
大哥可否加你一下Msn 请教一些问题 望您不吝赐教
October.1984@HotMail.com

  回复  引用  查看    
#392楼[楼主]2009-01-04 11:30 | TerryLee      
@青鳥銜花
已经添加你了。

  回复  引用  查看    
#393楼2009-01-31 07:27 | billrobin      
兄弟,能否将最新的源码发到我油箱。

beylandsoft@163.com

  回复  引用    
#394楼2009-03-18 13:57 | 哇哈哈
能不能麻烦楼主发一份完整的数据库备份和还原的代码,谢谢你
Arthur1_Zhang@pegatroncorp.com

  回复  引用    
#395楼2009-03-26 14:47 | zuoyi[未注册用户]
楼主 :
源码发个给我,急需。
数据库天天被注入,成“肉鸡”了我

  回复  引用  查看    
#396楼2009-04-14 16:34 | king...      
我也报错,晕死了,楼主,发份源码给我吧,KILL不调进程......
Email:shshshdy@163.com

  回复  引用    
#397楼2009-04-24 13:16 | zhanghan[未注册用户]
能不能麻烦楼主发一份完整的数据库备份和还原的代码,谢谢
zhag_han2000@163.com

  回复  引用    
#398楼2009-05-16 09:12 | ab[未注册用户]
能给我一份完整的数据库备份和还原的代码,谢谢
xiaohongliou@163.com

  回复  引用  查看    
#399楼[楼主]2009-05-18 11:14 | TerryLee      
@ab
几年前写的,代码早就找不到了。

  回复  引用    
#400楼2009-05-21 10:52 | web123[未注册用户]
{"对象名 'sysprocesses' 无效。\r\n名为 'getspid' 的游标不存在。\r\n名为 'getspid' 的游标不存在。\r\n名为 'getspid' 的游标不存在。\r\n名为 'getspid' 的游标不存在。"}
[System.Data.SqlClient.SqlException]: {"对象名 'sysprocesses' 无效。\r\n名为 'getspid' 的游标不存在。\r\n名为 'getspid' 的游标不存在。\r\n名为 'getspid' 的游标不存在。\r\n名为 'getspid' 的游标不存在。"}
Data: {System.Collections.ListDictionaryInternal}
HelpLink: null
InnerException: null
Message: "对象名 'sysprocesses' 无效。\r\n名为 'getspid' 的游标不存在。\r\n名为 'getspid' 的游标不存在。\r\n名为 'getspid' 的游标不存在。\r\n名为 'getspid' 的游标不存在。"
Source: ".Net SqlClient Data Provider" ... ...
这个是怎么回事儿????

  回复  引用    
#401楼2009-05-25 16:09 | 我是小基[未注册用户]
非常感谢楼主!终于找到备份MSSQL数据库的方法了!

评论共4页: 上一页 1 2 3 4 



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 253667




相关文章:

相关链接: