当前位置: 代码迷 >> SQL >> net 对mssql 的操作(备份,复原,获取表数据,获取表字段信息)
  详细解决方案

net 对mssql 的操作(备份,复原,获取表数据,获取表字段信息)

热度:18   发布时间:2016-05-05 10:55:18.0
net 对mssql 的操作(备份,还原,获取表数据,获取表字段信息)
 #region 数据库管理        /// <summary>        /// 还原恢复数据库        /// </summary>        /// <param name="FilePath">保存路径</param>        /// <returns></returns>        public bool DataRestore(string FilePath)        {            string[] Connection = ConfigHelper.GetAppSettings("SqlServer_WYL_DB").Split(';');            SqlServerBackup sqlserverbackup = new SqlServerBackup();            sqlserverbackup.Server = Connection[0].Substring(7);            sqlserverbackup.Database = Connection[1].Substring(9);            sqlserverbackup.Uid = Connection[2].Substring(4);            sqlserverbackup.Pwd = Connection[3].Substring(4);            if (sqlserverbackup.DbRestore(FilePath))                return true;            else                return false;        }        /// <summary>        /// 备份数据库        /// </summary>        /// <param name="FilePath">保存路径</param>        /// <returns></returns>        public bool DataBackups(string FilePath)        {            try            {                string[] Connection = ConfigHelper.GetAppSettings("SqlServer_WYL_DB").Split(';');                SqlServerBackup sqlserverbackup = new SqlServerBackup();                sqlserverbackup.Server = Connection[0].Substring(7);                sqlserverbackup.Database = Connection[1].Substring(9);                sqlserverbackup.Uid = Connection[2].Substring(4);                sqlserverbackup.Pwd = Connection[3].Substring(4);                if (sqlserverbackup.DbBackup(FilePath))                    return true;                else                    return false;            }            catch (Exception)            {                return false;            }        }        /// <summary>        /// 添加数据库备份恢复记录        /// </summary>        /// <param name="Type">类型:备份、恢复</param>        /// <param name="File">文件名</param>        /// <param name="Size">文件大小</param>        /// <param name="CreateUserName">创建用户</param>        /// <param name="DB">所属数据库</param>        /// <param name="Memo">备注</param>        /// <returns></returns>        public void Add_Backup_Restore_Log(string Type, string File, string Size, string CreateUserName, string DB, string Memo)        {            LogHelper Logger = new LogHelper("Backup_Restore_Log");            Hashtable ht = new Hashtable();            StringBuilder sb = new StringBuilder();            sb.Append(Type + "∫");            sb.Append(File + "∫");            sb.Append(Size + "∫");            sb.Append(CreateUserName + "∫");            sb.Append(DB + "∫");            sb.Append(Memo + "∫");            sb.Append(DateTime.Now + "∫");            sb.Append("∮");            Logger.WriteLog(sb.ToString());        }        /// <summary>        /// 数据库备份还原记录        /// </summary>        /// <returns></returns>        public DataTable GetBackup_Restore_Log_List()        {            LogHelper Logger = new LogHelper("Backup_Restore_Log");            string filepath = ConfigHelper.GetAppSettings("LogFilePath") + "/Backup_Restore_Log.log";            StreamReader sr = new StreamReader(filepath, Encoding.GetEncoding("UTF-8"));//取得这txt文件的编码            string[] strvalue = sr.ReadToEnd().ToString().Split('∮');            sr.Close();            DataTable dt = new DataTable();            dt.Columns.Add("Backup_Restore_Type", Type.GetType("System.String"));            dt.Columns.Add("Backup_Restore_File", Type.GetType("System.String"));            dt.Columns.Add("Backup_Restore_Size", Type.GetType("System.String"));            dt.Columns.Add("CreateUserName", Type.GetType("System.String"));            dt.Columns.Add("Backup_Restore_DB", Type.GetType("System.String"));            dt.Columns.Add("Backup_Restore_Memo", Type.GetType("System.String"));            dt.Columns.Add("CreateDate", Type.GetType("System.String"));            foreach (string item in strvalue)            {                if (item.Length > 6)                {                    string[] str_item = item.Split('∫');                    DataRow row = dt.NewRow();                    string[] Typeitem = str_item[0].Split(']');                    row["Backup_Restore_Type"] = Typeitem[1].Trim();                    row["Backup_Restore_File"] = str_item[1];                    row["Backup_Restore_Size"] = str_item[2];                    row["CreateUserName"] = str_item[3];                    row["Backup_Restore_DB"] = str_item[4];                    row["Backup_Restore_Memo"] = str_item[5];                    row["CreateDate"] = str_item[6];                    dt.Rows.Add(row);                }            }            dt.DefaultView.Sort = "CreateDate DESC";//DataTable排序            DataTable dtTemp = dt.DefaultView.ToTable();            return dtTemp;        }        /// <summary>        /// 获取数据库所有表名        /// </summary>        /// <returns></returns>        public DataTable GetSysobjects()        {            StringBuilder strSql = new StringBuilder();            strSql.Append("select Name as TABLE_NAME from sysobjects where xtype='u' and status >=0 and Name !='sysdiagrams' ");            return DataFactory.SqlDataBase().GetDataTableBySQL(strSql);        }        /// <summary>        /// 获取某一个表的所有字段        /// </summary>        /// <param name="object_id">表名</param>        /// <returns></returns>        public DataTable GetSyscolumns(string object_id)        {            DataTable dt = new DataTable();            StringBuilder strSql = new StringBuilder();            if (!string.IsNullOrEmpty(object_id) && object_id != "未选择")            {                strSql.Append(@"SELECT                                     [列名]=a.name,                                     [数据类型]=b.name,                                     [长度]=COLUMNPROPERTY(a.id,a.name,'PRECISION'),                                     [是否为空]=case when a.isnullable=1 then '√'else '' end,                                     [默认值]=isnull(e.text,''),                                     [说明]=isnull(g.[value],'未填说明')                                     FROM syscolumns a                                     left join systypes b on a.xusertype=b.xusertype                                     inner join sysobjects d on a.id=d.id  and d.xtype='U' and  d.name<>'dtproperties'                                     left join syscomments e on a.cdefault=e.id                                     left join sys.extended_properties g on a.id=g.major_id and a.colid=g.minor_id                                      left join sys.extended_properties f on d.id=f.major_id and f.minor_id=0");                strSql.Append("where d.name='" + object_id + "' order by a.id,a.colorder");                return DataFactory.SqlDataBase().GetDataTableBySQL(strSql);            }            return dt;        }        #endregion

  相关解决方案