//protected void btngetbak_DirectClick(object sender, Ext.Net.DirectEventArgs e)
    //{
    //    string tmp = AdName.Text;
    //    RowSelectionModel sm = this.gridpl.GetSelectionModel() as RowSelectionModel;
    //    if (sm.SelectedRows.Count != 1)
    //    {
    //        X.Msg.Alert("系统提示", "请选择一条记录还原!").Show();
    //        return;
    //    }
    //    else
    //    {
    //        string json = e.ExtraParams["Values"];
    //        Dictionary<string, string>[] companies = JSON.Deserialize<Dictionary<string, string>[]>(json);
    //        tmp = companies[0]["Name"];
    //    }
    //    SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["connectionString"].ToString());
    //    string dbFileName = "";
    //    dbFileName = tmp;
    //    SqlCommand command = new SqlCommand("use master ;ALTER DATABASE [BudgetNetDB] SET OFFLINE WITH ROLLBACK IMMEDIATE;restore database @name from disk=@path  WITH REPLACE;", connection);
    //    connection.Open();
    //    string path = "";
    //    path = Server.MapPath("~\\DataFile");
    //    path = path + "\\" + @dbFileName;
    //    command.Parameters.AddWithValue("@name", "BudgetNetDB");
    //    command.Parameters.AddWithValue("@path", path);
    //    command.ExecuteNonQuery();
    //    connection.Close();
    //    X.Msg.Alert("系统提示", "还原成功!").Show();
    //}

    #region 原备份
    //protected void btnWinAdd_DirectClick(object sender, DirectEventArgs e)
    //{
    //    SqlConnection connection =
    //        new SqlConnection(ConfigurationManager.ConnectionStrings["connectionString"].ToString());
    //    string dbFileName = "";

    //    dbFileName = AdName.Text;
    //    if (!dbFileName.EndsWith(".bak"))
    //    {
    //        dbFileName += ".bak";
    //    }
    //    SqlCommand command = new SqlCommand("use master;backup database @name to disk=@path;", connection);
    //    connection.Open();
    //    string path = Server.MapPath("~\\DataFile");
    //    if (!Directory.Exists(path))
    //    {
    //        Directory.CreateDirectory(path);
    //    }
    //    path = path + "\\" + dbFileName;
    //    if (!File.Exists(path))
    //    {
    //        command.Parameters.AddWithValue("@name", "BudgetNetDB");
    //        command.Parameters.AddWithValue("@path", path);
    //        int t = command.ExecuteNonQuery();
    //        connection.Close();
    //        ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "<script>window.location.href = window.location.href;</script>");
    //        //GetbakBind();
    //        //Winadd.Hide();
    //        X.Msg.Confirm("系统提示", "备份成功!", new MessageBoxButtonsConfig
    //        {
    //            Yes = new MessageBoxButtonConfig
    //            {
    //                Handler = "SS.DoYesSSS()",
    //                Text = "确定"
    //            }
    //        }).Show();
    //    }
    //    else
    //    {
    //        X.Msg.Alert("系统提示", "已存在相同的文件名!").Show();
    //    }
    //} 
    #endregion
    protected void btnWinAdd_DirectClick(object sender, DirectEventArgs e)
    {
        string dbFileName = "";

        dbFileName = AdName.Text;
        string sql = "  CREATE DATABASE  {0}"
 + " DECLARE  @sql  NVARCHAR (MAX)"
 + " DECLARE  @sql1  NVARCHAR (MAX)"
 + " DECLARE  @sql2  NVARCHAR (MAX)"
 + " DECLARE @i int"
 + " DECLARE @tabname  NVARCHAR (MAX)"
 + " set @i=1"
 + " while @i<=(select count(tab.name) from SysObjects as tab where xtype='u'  and name not like '%_Unit_%' )"
 + " begin"
 + " set  @tabname=(select top(1) * from (select top(@i) tab.name from SysObjects as tab where xtype='u' and name not like"
 + "       '%_Unit_%'  order by name asc) as a  order by name desc)"
 + "   SET @sql1 =  'select * into {0}.[dbo].'+@tabname+' from ' +@tabname "
 + "   SET @sql2 =  'drop table {0}.[dbo].'+@tabname    +  @sql1 "
 + " SET @sql =  ''if object_id(N'{0}.[dbo].'+@tabname+'',N'U') is not null   EXEC(@sql2)    else  EXEC(@sql1) "
 + " EXEC(@sql); "
 + " set @i= @i+1 "
 + " end ";
        sql = string.Format(sql, dbFileName);
        int t = DBUnity.ExecuteNonQuery(CommandType.Text, sql, null);
        if (t > 0)
        {
            BG_Unit_Dbbak dbbak = new BG_Unit_Dbbak();
            dbbak.DbName = dbFileName;
            dbbak.DbCreationTime = DateTime.Now;
            if (BG_Unit_DbbakService.AddBG_Unit_Dbbak(dbbak).DbID > 0)
            {
                X.Msg.Confirm("系统提示", "备份成功!", new MessageBoxButtonsConfig
           {
               Yes = new MessageBoxButtonConfig
               {
                   Handler = "SS.DoYesSSS()",
                   Text = "确定"
               }
           }).Show();
            }

        }
    }
 private void GetbakBind()
 {
     DataTable dt = BG_Unit_DbbakService.GetAllBG_Unit_Dbbak();
     gridplstore.DataSource = dt;
     gridplstore.DataBind();
 }
 public static BG_Unit_Dbbak GetBG_Unit_DbbakByDbID(int dbID)
 {
     return(BG_Unit_DbbakService.GetBG_Unit_DbbakByDbID(dbID));
 }
    //public void btnrestore(string name)
    //{
    //    string tmp = AdName.Text;
    //    tmp = name;
    //    SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["connectionString"].ToString());
    //    string dbFileName = "";
    //    dbFileName = tmp;
    //    SqlCommand command = new SqlCommand("use master ;ALTER DATABASE [BudgetNetDB] SET OFFLINE WITH ROLLBACK IMMEDIATE;restore database @name from disk=@path  WITH REPLACE;", connection);
    //    connection.Open();
    //    string path = "";
    //    path = Server.MapPath("~\\DataFile");
    //    path = path + "\\" + @dbFileName;
    //    command.Parameters.AddWithValue("@name", "BudgetNetDB");
    //    command.Parameters.AddWithValue("@path", path);
    //    command.ExecuteNonQuery();
    //    connection.Close();
    //    X.Msg.Alert("系统提示", "还原成功!").Show();
    //} 
    public   void  btnrestore(string dbid)
    {
        string dbname = DBUnity.connectionString.Split(';')[1].Split('=')[1];
        string tmp = BG_Unit_DbbakService.GetBG_Unit_DbbakByDbID(Common.common.IntSafeConvert(dbid)).DbName;
        string  connectionStringserver = ConfigurationManager.ConnectionStrings["ConnectionStringserver"].ToString();
        string sql = " DECLARE  @sql  NVARCHAR (MAX)"
   + " DECLARE  @sql1  NVARCHAR (MAX)"
   + " DECLARE  @sql2  NVARCHAR (MAX)"
   + " DECLARE @i int"
   + " DECLARE @tabname  NVARCHAR (MAX)"
   + " set @i=1"
   + " while @i<=(select count(tab.name) from  {1}.dbo.SysObjects as tab where xtype='u'  and name not like '%_Unit_%' )"
   + " begin"
   + " set  @tabname=(select top(1) * from (select top(@i) tab.name from {1}.dbo.SysObjects as tab where xtype='u' and name not like"
   + "       '%_Unit_%'  order by name asc) as a  order by name desc)"
   + "   SET @sql1 =  'select * into {1}.dbo.'+@tabname+' from ' +'{0}.[dbo].'+@tabname "
   + "   SET @sql2 =  'drop table {1}.[dbo].'+@tabname   +' '  +  @sql1 "
   + " SET @sql =  ''if object_id(N'{1}.[dbo].'+@tabname+'',N'U') is not null   EXEC(@sql2)    else  EXEC(@sql1) "
   + " EXEC(@sql); "
   + " set @i= @i+1 "
   + " end ";
        sql = string.Format(sql, tmp, dbname);
        int t = DBUnity.ExecuteNonQuery(CommandType.Text, sql, null);
        if (t > 0)
        {
            FileStream aFile = new FileStream(Server.MapPath("~\\DataFile") + "\\" + "存储过程.txt", FileMode.Open, FileAccess.Read);
            StreamReader sr = new StreamReader(aFile, Encoding.UTF8);
            string sqlccgc = sr.ReadToEnd();
            sr.Close();
            aFile.Close();
            int c = 0;
            try
            {
                string serversql = string.Format("EXEC  sp_dropserver 'JZDBServer' , 'droplogins'    EXEC sp_addlinkedserver 'JZDBServer','','SQLNCLI','{0}'      EXEC sp_addlinkedsrvlogin 'JZDBServer','false',NULL,'sa','{1}'", connectionStringserver.Split(';')[0].Split('=')[1], connectionStringserver.Split(';')[3].Split('=')[1]);
                DBUnity.ExecuteNonQuery(CommandType.Text, serversql, null);
                string[] arr = System.Text.RegularExpressions.Regex.Split(sqlccgc.Replace("\r\n"," "), "GO");
                try
                {
                    for (int n = 0; n < arr.Length; n++)
                    {
                        string strsql = arr[n];
                        if (strsql.Trim().Length > 1)
                        {
                            DBUnity.ExecuteNonQuery(CommandType.Text, strsql, null);
                        }

                    }
                    c++;
                }
                catch 
                {
                    c = 0; 
                }
               
            }
            catch (Exception ex)
            {
                if (ex.ToString().Contains("已存在"))
                {
                    c++;
                }
            }
            if (c > 0)
            {
                X.Msg.Alert("系统提示", "还原成功!").Show();
            }
            else
            {
                X.Msg.Alert("系统提示", "还原失败!").Show();
            }
        }
    }
 public static DataTable GetAllBG_Unit_Dbbak()
 {
     return(BG_Unit_DbbakService.GetAllBG_Unit_Dbbak());
 }
 public static bool ModifyBG_Unit_Dbbak(BG_Unit_Dbbak bG_Unit_Dbbak)
 {
     return(BG_Unit_DbbakService.ModifyBG_Unit_Dbbak(bG_Unit_Dbbak));
 }
 public static bool DeleteBG_Unit_DbbakByID(int dbID)
 {
     return(BG_Unit_DbbakService.DeleteBG_Unit_DbbakByDbID(dbID));
 }
 public static bool DeleteBG_Unit_Dbbak(BG_Unit_Dbbak bG_Unit_Dbbak)
 {
     return(BG_Unit_DbbakService.DeleteBG_Unit_Dbbak(bG_Unit_Dbbak));
 }
 public static BG_Unit_Dbbak AddBG_Unit_Dbbak(BG_Unit_Dbbak bG_Unit_Dbbak)
 {
     return(BG_Unit_DbbakService.AddBG_Unit_Dbbak(bG_Unit_Dbbak));
 }