using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using YX.Entity;
namespace YX.DAL
{
public static class System_Dal
{
///
/// 获取数据库所有表名
///
///
public static List GetTableName()
{
Listlist=new List();
try
{
using (Sam_DBEntities db=new Sam_DBEntities())
{
string sql = @"select Name as TABLE_NAME from sysobjects where xtype = 'u' and status >= 0 and Name != 'sysdiagrams'";
DataTable dt= SqlHelper.ExecuteDataset(db.Database.Connection.ConnectionString, CommandType.Text, sql).Tables[0];
if (dt != null)
{
foreach (DataRow dr in dt.Rows)
{
list.Add(dr["TABLE_NAME"].ToString());
}
}
return list;
}
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 获取某一个表的所有字段
///
/// 表名
///
public static DataTable GetSyscolumns(string object_id)
{
DataTable dt = new DataTable();
try
{
using (Sam_DBEntities db=new Sam_DBEntities())
{
string strSql = "";
if (!string.IsNullOrEmpty(object_id) && object_id != "未选择")
{
strSql = @"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
where d.name='" + object_id + "' order by a.id,a.colorder";
return SqlHelper.ExecuteDataset(db.Database.Connection.ConnectionString, CommandType.Text, strSql).Tables[0];
}
}
}
catch (Exception)
{
throw;
}
return dt;
}
public static int DbBackup(string FilePath)
{
try
{
using (Sam_DBEntities db=new Sam_DBEntities())
{
string sql = string.Format(@"BACKUP DATABASE Sam_DB
TO DISK = N'{0}'
WITH NOFORMAT
, NOINIT
, NAME = N'Sam_DB'
, SKIP
, REWIND
, NOUNLOAD
, STATS = 10", FilePath);
int i = SqlHelper.ExecuteNonQuery(db.Database.Connection.ConnectionString, CommandType.Text, sql);
return i;
}
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 日志写数据库中
///
///
///
public static int WriteLogToDB(Base_Log loginfo)
{
try
{
using (Sam_DBEntities db=new Sam_DBEntities())
{
loginfo.CreateTime = DateTime.Now;
loginfo.LogID = Guid.NewGuid().ToString();
db.Base_Log.Add(loginfo);
return db.SaveChanges(); ;
}
}
catch (Exception ex)
{
throw ex;
}
}
public static DataTable GetSystemLog(string ip ,string type)
{
DataTable dt = new DataTable();
try
{
using (Sam_DBEntities db = new Sam_DBEntities())
{
var sql = @"SELECT top 35 LogMessage,CreateTime FROM Base_Log where type='" + type + "' and LocalIP= '" + ip+ "' ORDER BY CreateTime DESC ";
dt = SqlHelper.ExecuteDataset(db.Database.Connection.ConnectionString, CommandType.Text, sql).Tables[0];
}
}
catch (Exception ex)
{
throw ex;
}
return dt;
}
}
}