zoukankan      html  css  js  c++  java
  • C# 自动部署之附加数据库

    转自心存善念 原文 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", "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-更改该组权限为完全权限,再次附加成功。

  • 相关阅读:
    c# 方法重载
    c# propertyGrid下拉选项
    c# 枚举类型
    c# socket编程
    读书笔记之ado.net entity framework
    c# delegate的invoke和bejinInvoke的区别
    C# 读书笔记之类与结构体
    c#笔记之启动新线程
    c# listview的使用
    visual studio2013 改变匹配括号的颜色
  • 原文地址:https://www.cnblogs.com/arxive/p/6251085.html
Copyright © 2011-2022 走看看