码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2015-01-10 06:37:53      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:sql   数据库   net   

 #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

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

标签:sql   数据库   net   

原文地址:http://blog.csdn.net/wyl900606/article/details/42572521

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!