asp.net 因为数据库正在使用的解决方法

这个问题困惑我好长的时间,在网上搜,也没完全的解决方案,不是过于简单,就是乱说,有的论坛上还没人回答这个问题.今天我彻底解决这个问题,并在C#里测试完全通过.现在把他写出来,希望对朋友们有帮助(如要转载,记得给我版权哦.嘿嘿!!!).以下信息是综合网上的资料和我的实际问题,整理出来的.
备份:
在备份按钮里写:


代码如下:

protected void Button1_Click(object sender, EventArgs e)
{
string path = "e:\\MAZ数据库备份\\" + Menu+ ".bak";
if (File.Exists(path))
{
File.Delete(path);//注意,这个步骤很重要,如果重复,在备份的数据,就会变成,

//你刚开始的数据,所以每次都要先删除.

      }
if (!File.Exists(path))
{
FileStream fs = File.Create(path);

fs.Close();
}
string backupstr="backup database Test to disk='"+path+"';";
SqlConnection con = new SqlConnection("server=localhost;database=Menu;uid=sa;pwd=sa;");
SqlCommand cmd = new SqlCommand(backupstr, con);
try
{
con.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("备份成功!");
connection.Close();

}
catch (Exception ex)
{
string stringError = ex.ToString();
MessageBox.Show("备份失败!");
connection.Close();
}
}

还原:
在还原按钮里写:


代码如下:

protected void Button2_Click(object sender, EventArgs e)
{
string path = "e:\\MAZ数据库备份\\" + Menu+ ".bak";

string connectionStringTest = "server=localhost ;database=master;uid=sa;pwd=sa";

SqlConnection connection = new SqlConnection(connectionStringTest);
string backupstr = "restore database Menu from disk='" + path + "';";

try
{
string sql = "exec killspid '" + Menu+ "'";//这个很关键,要不然就出现题目上的错误了
SqlCommand cmd = new SqlCommand(sql, connection);
connection.Open();

cmd.ExecuteNonQuery();
cmd = new SqlCommand(backupstr, connection);
cmd.ExecuteNonQuery();
MessageBox.Show("恢复成功!");
connection.Close();
}
catch (Exception ex)
{
string stringError = ex.ToString();
MessageBox.Show("恢复失败!");
connection.Close();
}

}

存储过程 killspid


代码如下:

create proc killspid (@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+''')'
exec (@sql)
open getspid
fetch next from getspid into @spid
while @@fetch_status <>-1
begin
exec('kill') +@spid
fetch next from getspid into @spid
end
close getspid
deallocate getspid
end

(0)

相关推荐

  • asp.net 因为数据库正在使用的解决方法

    这个问题困惑我好长的时间,在网上搜,也没完全的解决方案,不是过于简单,就是乱说,有的论坛上还没人回答这个问题.今天我彻底解决这个问题,并在C#里测试完全通过.现在把他写出来,希望对朋友们有帮助(如要转载,记得给我版权哦.嘿嘿!!!).以下信息是综合网上的资料和我的实际问题,整理出来的. 备份: 在备份按钮里写: 复制代码 代码如下: protected void Button1_Click(object sender, EventArgs e) { string path = "e:\\MAZ数

  • ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法

    本文实例讲述了ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法.分享给大家供大家参考.具体方法如下: 这种情况是在 magic_quotes_gpc 开启的情况下发生的.原因是thinkphp在入库的时候没有判断 magic_quotes_gpc 是否开启,不管三七二十一地进行了转义处理. 解决办法是在入口文件增加如下代码则可: 复制代码 代码如下: if (!get_magic_quotes_gpc()) {      function addslashes_deep($valu

  • ASP.NET MVC错误处理的对应解决方法

    ASP.NET MVC的错误处理应考虑到这几个方面:模型绑定期间发生的错误,未能路由到指定操作,针对控制器的错误处理.使用配置文件可以帮助我们处理异常,但是不够灵活和全面:使用HandleErrorAttribute.自定义错误过滤器或重写控制器OnException方法只能解决针对控制器的错误,无法解决模型绑定期间发生的错误,也无法处理404错误,即使将错误过滤器注册为全局过滤器也是如此.有时候需要多种方法配合使用. 在捕获错误的地方,可以将有用的信息记录下来,便于我们查出引起问题的原因和纠正

  • django数据库migrate失败的解决方法解析

    Django是一个MVC架构的web框架,其中,数据库就是"Module".使用这种框架,我们不必写一条SQL语句,就可以完成对数据库的所有操作.在之前的Django版本中,我们像操作本地对象那样操作数据对象,在更改保存之后,执行python manage.py syncdb命令来同步数据库,在我使用的1.9.2版本中,需要依次执行一下步骤: python manage.py makemigrations (这个命令会根据你对数据库做出的更改生成操作数据库的python脚本) pyth

  • IDEA无法连接mysql数据库的6种解决方法大全

    本文主要介绍了IDEA无法连接mysql数据库的6种解决方法大全,分享给大家,具体如下: 1.本地的mysql没有创建该数据库(笔者就是这个原因!) 查看数据库发现没有,重建就可以了 测试成功! 网上说法: 2.IP地址不对 https://www.jb51.net/article/200432.htm 3.mysql版本过高 https://bbs.csdn.net/topics/392368070?page=1 4.创建的Java项目的路径里包含中文字符 https://www.jb51.n

  • IDEA连接mysql数据库报错的解决方法

    IDEA连接mysql数据库出现Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property manually. 报错意思是服务器返回了无效时区.也就是我们的数据库返回了无效的时区. 如图所示: 报错中显示让我们去Advanced下的serverTimezone看看. 那我们就打开Advanced看看 可以看到这里显示的时域为空的,我们填入Asia/Shanghai 搞定.注意这里可

  • asp.net“服务器应用程序不可用” 解决方法

    引起这个的原因大概是现安装了.Net Framework后装的IIS导致.Net没有在IIS里注册. 在网上找了很久都是说从.net命令行工具里运行aspnet_regIIS /i就可以了(或者在类似下面的目录:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -i),但是自己试了很多次都不行,后来发现还是要先卸载再安装,重新创建为应用程序才行,具体如下: 从.net命令行工具里运行 aspnet_regIIS /u 卸

  • 解决asp.net ajax sys未定义的解决方法

    出现这种错误,一般是缺少2个文件,放到项目或者服务器根目录下 新建记事本,随便打上几个字母,分别保存为以下2个文件,上传即可解决 WebResource.axd , ScriptResource.axd 或参考如下方法:每个人碰到的原因可能不一样. 首先,我们看一下网上出问题的同志们虽说都是"Sys 未定义",但是情况却不尽相同,有的人使用的是Atlas版本,有的使用的Asp.net ajax Beta,有的则是正式发行版Asp.net ajax Beta,所以解决的方法也有区别了.下

  • asp.net2.0中css失效的解决方法

    1,CSS文件路径不正确这个问题属于Web开发中的基础问题,一般采用相对路径会出现这样的问题,或者样式文件写在了母版页里面,在内容页与母版页不在同一级目录下时会出现这样的问题.此时你要清楚Web中相对路径的规则,如果你不清楚,可以采用绝对路径的写法试试就知道是不是路径的问题了. 2,CSS规则写法错误这个问题谁也帮不你,只能自己学习CSS的相关知识了. 3,文件编码问题有时候,CSS样式放在aspx文件里有效,而放在独立的文件中无效,这样的问题如果不是路径问题,则就是编码问题造成的,可以将CSS

  • asp.net操作过程中常见错误的解决方法

    错误一:IIS无法识别ASP.NET,并报出以下错误: 名称以无效字符开头.处理资源 'http://localhost/likong/' 时出错.第 1 行,位置: 2 解决方法: 在命令窗口中运行: C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -i [.NET 1.1] C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i [.NE

随机推荐