首页 技术 正文
技术 2022年11月9日
0 收藏 850 点赞 4,220 浏览 853 个字

转自心存善念 原文 C# 自动部署之附加数据库

看着别人的网站能够自动安装,数据库自动附加,觉得很神奇很向往,但是始终米有去手动实践。

网上找了下资料,发现实现起来其实很简单

直接code

private bool Attachdb()
{
//sMDBFile 为mdf文件路径
//sLog 为ldf文件路径
string sMDBFile = Server.MapPath("/data/DBTest.mdf");
string sLog = Server.MapPath("/data/DBTest_log.ldf");
string dbname = "DBTest";
try
{
string sql = string.Empty; if (System.IO.File.Exists(sMDBFile))
{
sql = "EXEC sp_attach_db @dbname = '" + dbname +
"', @filename1 = '" + sMDBFile +
"',@filename2='" + sLog + "'";
SqlConnection conn = new SqlConnection(string.Format("Data Source={0};Initial Catalog=master;User ID={1};PWD={2}", "(local)", "sa", ""));
using (conn)
{
lock (conn)
{
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
}
}
}
return true;
}
catch
{
return false;
}
}

权限问题:

用T-SQL命令附加数据库时,出现如下异常信息:

无法打开物理文件 XXX.mdf”。操作系统错误 5:”5(拒绝访问。)”。 (Microsoft SQL Server,错误: 5120)

解决方案:

找到xxx.MDF与xxx_log.LDF文件,右键-属性-安全-在组或用户名处添加Authenticated Users-更改该组权限为完全权限,再次附加成功。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,893
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,421
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,240
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,052
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,683
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,719