#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;
}
#endregionnet 对mssql 的操作(备份,还原,获取表数据,获取表字段信息)
原文地址:http://blog.csdn.net/wyl900606/article/details/42572521