请问,现在知道文件夹里有数据库的MDF LDF文件,杂个用c#附加数据库
谢谢

解决方案 »

  1.   

    我已经晓得了哈
    private void CreateDataBase(string strSql,string DataName,string strMdf,string strLdf)
      {
       String str;
       SqlConnection myConn = new SqlConnection (strSql);
       //EXEC sp_detach_db @dbname = 'BX_FreightMileage_2'//需要先将数据库分离出来
       str = "EXEC sp_attach_db @dbname = '"+ DataName +"', @filename1 = '"+ strMdf +"',@filename2='"+strLdf+"'";
       SqlCommand myCommand = new SqlCommand(str, myConn);
       
        myConn.Open();
        myCommand.ExecuteNonQuery();
        myConn.Close();
       
      }
      

  2.   

    直接用sqlcommand 设置 sp_attach_db也可以的
      

  3.   


    public static bool AddDataBase(string DbName,string path_Mdf,string path_Ldf) 
    {
    bool bl=false;
    StartSqlServer();//启动sql服务
    try
    {
    SqlConnection Conn=new SqlConnection(ConnectionString);
    Conn.Open();
    //sp_detach_db分离数据,sp_attach_db附加数据
    string ComText="IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'"+DbName+"')"+
    "begin EXEC sp_detach_db "+DbName+" end  "+//如果数据库已经存在则先分离
    "EXEC sp_attach_db @dbname = N'"+DbName+"',"+
    "@filename1 = N'"+path_Mdf+"',"+
    "@filename2 = N'"+path_Ldf+"'";
    SqlCommand Comm = new SqlCommand(ComText,Conn); 
    Comm.ExecuteNonQuery(); 
    Conn.Close();
    bl=true;
    }
    catch(Exception ex)
    {
    throw new ApplicationException("附加数据库失败",ex);
    }
    return bl;
    }