ASP.net开发典型模块大全 还原数据库出错
发表在ASP.NET图书答疑 2010-03-27
是否精华
版块置顶:
我参考你们ASP.net开发典型模块大全第609页做的数据库还原操作,代码稍微做了一些修改使得更使命我想要的操作。 
try
            {
                   SqlCommand command = new SqlCommand("use master restore database @name from disk=@path;", connection);
                   connection.Open(); 
                   string path = Server.MapPath("~\\App_Data\\DataBackup") + "\\" + dbFileName; 
                   command.Parameters.AddWithValue("@name", dbName); 
                   command.Parameters.AddWithValue("@path", path2); 
                  command.ExecuteNonQuery(); 
                  connection.Close();
                  ClientScript.RegisterClientScriptBlock(this.GetType(), "", "alert('还原数据库成功!');location='BkReD.aspx'", true);
            }
            catch (Exception error)
            {
                Response.Write(error.Message);
                ClientScript.RegisterClientScriptBlock(this.GetType(), "", "alert('还原数据库失败!');location='BkReD.aspx'", true);
            }
            finally
            {
                connection.Close();
            }


错误信息:因为数据库正在使用,所以无法获得独占访问权,Restore DataBase正在异常终止。
分享到:
精彩评论 3
大伟_mrkj
学分:0 LV1
2010-03-28
沙发
你好!
你先在服务器上停止这个数据库的服务,
然后再启动服务还原就可以了
wowangsb
学分:0 LV1
TA的每日心情
我要资源
2024-08-27 23:01:24
2010-03-29
板凳
[FIELDSET][LEGEND]引自:1楼[/LEGEND]
你好!
你先在服务器上停止这个数据库的服务,
然后再启动服务还原就可以了
[/FIELDSET]

回复:
  您好。谢谢您的回复。。。我做的是一个管理系统的毕设。。。所以不可能让用户手动停止服务。。能直接在系统里编程实现吗?着急等待中。。。。还有一个月就要答辩了。。
大伟_mrkj
学分:0 LV1
2010-03-31
地板
读者朋友你好!
由于最近比较忙 所以没有及时回复您的问题 这里表示抱歉!
给你一个参考的建议:
在数据库管理系统中,当对数据库进行分离时有时因为数据库正处于连接状态 所以无法时行还原或分离,你可以试着用存储过程杀死数据库连接进程,主要是应用关键字kill(可参考 明日科技 《ASP.NET范例完全自学手册》)
参考的方法如下:
1、首先定位到master 数据库

2、运行如下语句:

declare @dbname varchar(20)
set @dbname='sms_server' ---这是数据库名称

declare @sql nvarchar(500)
declare @spid int--SPID 值是当用户进行连接时指派给该连接的一个唯一的整数
set @sql='declare getspid cursor for 
select spid from sysprocesses where dbid=db_id('''+@dbname+''')'
exec (@sql)
open getspid
fetch next from getspid into @spid
while @@fetch_status<>-1--如果FETCH 语句没有执行失败或此行不在结果集中。
begin
exec('kill '+@spid)--终止正常连接
fetch next from getspid into @spid
end
close getspid
deallocate getspid
首页上一页 1 下一页尾页 3 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照