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

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

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

相关文章
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
9164 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
24837 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
18063 0
C++中消息自动派发之三 About JSON Encode
  《C++ 消息自动派发》系列上篇介绍了IDL解析器,生成的C++代码只支持JSON转C++ struct。 经过新的重构,这次增加了对C++ struct 转JSON的支持。IDL解析器自动为C++ struct生成两个方法。
874 0
持续集成(CI)、自动化构建和自动化测试--初探
此文章是为了总结前一段时间由于Maven2的学习而引起的一个持续集成的学习。 一、什么是持续集成(Continuous Integration)?      这个概念到底是怎么定义,说实话很多不同的版本。
2072 0
【C++中消息自动派发之四】使用IDL构建Chat Server
  前一篇blog 讲了如何实现IDL 解析器,本篇通过IDL解析器构建一个聊天服务器程序。本程序用来测试IDL解析器的功能,网络层使用前边blog中介绍的ffown库。我们只需定义chat.idl文件,idl解析器自动生成消息排放代码,省了每次再去繁琐的编写消息解析、判断代码。
1143 0
附加没有LDF的数据库文件
原文:附加没有LDF的数据库文件   如果你只下载了数据文件,没有LDF文件,那么附加的时候选择使用ATTACH_REBUILD_LOG。 命令类似: USE [master] GO CREATE DATABASE [AdventureWorks2012] ON ( FILENAME = N'D:\AdventureWorks2012_Data.
670 0
+关注
芝麻软件
编程语言,框架相关专家
579
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载