开发者社区> 芝麻软件> 正文

C# 自动部署之附加数据库

简介: 看着别人的网站能够自动安装,数据库自动附加,觉得很神奇很向往,但是始终米有去手动实践。 网上找了下资料,发现实现起来其实很简单 直接code private bool Attachdb() { //sMDBFile 为mdf文件路径 ...
+关注继续查看

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

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

直接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", "123456"));
                    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-更改该组权限为完全权限,再次附加成功。 

 

 

好文推荐:

http://blog.csdn.net/smartsmile2012/article/details/8782522  创建数据库 附加数据库等操作

 

参考链接:

 

http://blog.csdn.net/blackfield/article/details/6550499

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【C++中消息自动派发之四】使用IDL构建Chat Server
  前一篇blog 讲了如何实现IDL 解析器,本篇通过IDL解析器构建一个聊天服务器程序。本程序用来测试IDL解析器的功能,网络层使用前边blog中介绍的ffown库。我们只需定义chat.idl文件,idl解析器自动生成消息排放代码,省了每次再去繁琐的编写消息解析、判断代码。
1165 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
28410 0
C++中消息自动派发之一 About JSON
1. 闲序   游戏服务器之间通信大多采用异步消息通信。而消息打包常用格式有:google protobuff,facebook thrift, 千千万万种自定义二进制格式,和JSON。前三种都是二进制格式,针对C++开发者都是非常方便的,效率和包大小(数据冗余度)也比较理想。
894 0
C++中消息自动派发之二 About IDL解析器
  前一篇blog中讲了如何在C++中实现消息的自动派发,而关键点在于如何实现通过IDL文件自动生成msg_dispatcher模板类。有几个网友提醒我idl解析器会比较难写,事实却是如此。我第一个版本的idl解析器本来只是想做demo只用。
738 0
不附加数据库 ASP.NET调用.“.NET研究”sql文件
  笔者好久没有写随笔了,这次是遇到提出这样的问题“不用附加数据库,什么修改web.config什么的那么麻烦,而是直接运行一个页面,然后根据向导一步一步引导用户安装生成数据库”那么这样做就需要一个创建数据库的语句和创建这些数据库表的语句,还有这些创建数据库视图以及函数的语句。
646 0
附加数据库失败,操作系统错误 5:"5(拒绝访问。)"的解决办法
转自http://www.cnblogs.com/badnewfish/archive/2011/05/27/2060338.html 无法打开物理文件 XXX.mdf"。操作系统错误 5:"5(拒绝访问。
1046 0
持续集成(CI)、自动化构建和自动化测试--初探
此文章是为了总结前一段时间由于Maven2的学习而引起的一个持续集成的学习。 一、什么是持续集成(Continuous Integration)?      这个概念到底是怎么定义,说实话很多不同的版本。
2151 0
+关注
芝麻软件
编程语言,框架相关专家
579
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载