private void button1_Click(object sender, EventArgs e)
{
string path = "d:\\database\\students.bak";
string strsql = "backup database students to disk='" + path + "'";
SqlConnection conn = new SqlConnection("server=.;database=students;integrated security=true");
SqlCommand cmd = new SqlCommand(strsql,conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
MessageBox.Show("备份成功!");
} private void button2_Click(object sender, EventArgs e)
{
//在这里添加关闭数据连接的代码 string path = "d:\\database\\students.bak";
string strsql = "restore database students from disk='" + path + "'";
SqlConnection conn = new SqlConnection("server=.;database=aaa;integrated security=true");
SqlCommand cmd = new SqlCommand(strsql, conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
MessageBox.Show("恢复成功!");
}
老师说还原前要先关闭当前的数据库连接。说要在button2_Click中加几段关闭数据库连接的代码我搜了好久也没有搜到,请大家帮助
{
string path = "d:\\database\\students.bak";
string strsql = "backup database students to disk='" + path + "'";
SqlConnection conn = new SqlConnection("server=.;database=students;integrated security=true");
SqlCommand cmd = new SqlCommand(strsql,conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
MessageBox.Show("备份成功!");
} private void button2_Click(object sender, EventArgs e)
{
//在这里添加关闭数据连接的代码 string path = "d:\\database\\students.bak";
string strsql = "restore database students from disk='" + path + "'";
SqlConnection conn = new SqlConnection("server=.;database=aaa;integrated security=true");
SqlCommand cmd = new SqlCommand(strsql, conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
MessageBox.Show("恢复成功!");
}
老师说还原前要先关闭当前的数据库连接。说要在button2_Click中加几段关闭数据库连接的代码我搜了好久也没有搜到,请大家帮助
解决方案 »
- 如何在删除gridview的一行数据前,弹出一个提示
- 在.Net里实现多条件查询,时间的按月份或者几号来查询,显示在一个GridView里
- wss修改WebPartManager.DisplayMode 为DesignDisplayMode报错
- TreeView节点FullPath的一个奇怪问题
- 模拟web提交信息,有问题求助
- C#中如何向一个程序发出指令?
- 在.net横行的年代,还有必要看《windows程序设计》这本圣经吗?
- 联盟提问
- 对接受的参数进行查询的问题!!急啊!!
- 刷新页面的问题!!!
- 根据网页下载地址如何生成手机二维码图片,求可用代码!!!
- ORA-12154: TNS: 无法解析指定的连接?寻求解决方法
汗。
as declare @sql varchar(8000) if isnull(@dbname,'')=''select @sql=reverse(@bkfile),@sql=case when charindex('.',@sql)=0 then @sql else substring(@sql,charindex('.',@sql)+1,1000) end ,@sql=case when charindex('\',@sql)=0 then @sql else left(@sql,charindex('\',@sql)-1) end,@dbname=reverse(@sql)
set @sql='restore '+case @retype when 'LOG' then 'log ' else 'database ' end+@dbname+' from disk='''+@bkfile+''''+' with file='+cast(@filenumber as varchar) +case when @overexist=1 and @retype in('DB','DBNOR') then ',replace' else '' end +case @retype when 'DBNOR' then ',NORECOVERY' else ',RECOVERY' end
print @sql
if @overexist=1 and @killuser=1
begin declare @spid varchar(20) declare #spid cursor for select spid=cast(spid as varchar(20)) from master..sysprocesses where dbid=db_id(@dbname) open #spid fetch next from #spid into @spid while @@fetch_status=0 begin exec('kill '+@spid) fetch next from #spid into @spid End close #spid deallocate #spid End
exec (@sql)
go
create proc KillSpByDbName(@dbname varchar(20))
as
begin
declare @sql nvarchar(500),@temp varchar(1000)
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
set @temp='kill '+rtrim(@spid)
exec(@temp)
fetch next from getspid into @spid
end
close getspid
deallocate getspid
end --举例使用,关闭数据库下的所有连接操作
Use master
Exec KillSpByDbName '数据库名称'
关闭数据库,Kill所有连接 另外一个方法就是:自己设计一个连接池 Connection Pool
关闭整个Pool就OK了
转自:http://zhidao.baidu.com/question/102688192.html