sqlsugar安装:
官网Nuget安装 - SqlSugar 5x - .NET果糖网 (donet5.com)
SqlSugar打包:
public class SqlSugarBase
{
private static string MyConn { get => ConfigurationManager.ConnectionStrings["myconn"].ConnectionString; }
private static SqlSugarClient Client
{
get => new SqlSugarClient(new ConnectionConfig()
{
ConnectionString = MyConn,
DbType = DbType.SqlServer,
IsAutoCloseConnection = true,//自动释放
InitKeyType = InitKeyType.SystemTable
});
}
/// <summary>
/// 打印SQL语句
/// </summary>
/// <param name="db"></param>
private static void WriteSQL(SqlSugarClient db)
{
db.Aop.OnLogExecuting = (sql, pars) =>
{
Log.log(sql,new System.Diagnostics.StackTrace(true));
if(pars!=null&&pars.Length>0) Log.log(string.Join(",", pars?.Select(it => it.ParameterName + "=" + it.Value)), new System.Diagnostics.StackTrace(true));
};
}
public static SqlSugarClient DB
{
get
{
SqlSugarClient db = Client;
WriteSQL(db);
return db;
}
}
}
在DAL中继承或者直接使用
例如:
public class GuardDAL:SqlSugarBase
{
public static DataTable GetInfo()
{
return DB.Queryable<Guard>().ToDataTable();
}
public static DataTable GetInfo(int id)
{
return DB.Queryable<Guard>().Where(it=>it.Id==id).ToDataTable();
}
}
以上是继承SqlSugarBase,sqlsugar的简单使用。
注:Log是日志文件,将sql语句以及参数打印。
/// <summary>
/// 日志文件
/// </summary>
public class Log
{
// 定义单例模式的变量
private static Log instance = null;
//log输出文件
private const string TOFILE_NAME = "\\log.txt";
log输出路径
//private const string TOFILE_PATH = "D:\\LOG\\";
// 单例模式私有的构造方法
private Log()
{
}
public static Log GetInstance()
{
if (instance == null)
{
instance = new Log();
}
return instance;
}
public static string PHYSICAL_PATH { get; set; }
public static string LAST_MSG { get; set; }
//public static string ReadSystemLog()
//{
// return File.ReadAllText(LogReadonly.LOG_FILE_PATH + LogReadonly.LOG_FILE_NAME_SYSTEM, Encoding.UTF8);
//}
/// 创建日志
/// <param name="message">日志信息</param>
/// <param name="from">来自哪儿</param>
/// <param name="number">行数</param>
public static void log(string message, System.Diagnostics.StackTrace st)
{
string cont = "";
//当前路径
//string path = "../log/";
string logFolderPath = AppDomain.CurrentDomain.BaseDirectory;
logFolderPath = logFolderPath.Remove(logFolderPath.Length - 1, 1);
logFolderPath = logFolderPath.Replace("/", "\\");
logFolderPath = logFolderPath + "\\log";
//file
string fileName = logFolderPath + TOFILE_NAME;
DirectoryInfo dir = new DirectoryInfo(logFolderPath);
dir.Create();//自行判断一下是否存在。
FileInfo fileInf = new FileInfo(fileName);
if (File.Exists(fileName))//如何文件存在 则在文件后面累加
{
FileStream logFss = new FileStream(fileName, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
StreamReader r = new StreamReader(logFss);
cont = r.ReadToEnd();
r.Close();
logFss.Close();
}
FileStream logFs = new FileStream(fileName, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
StreamWriter n = new StreamWriter(logFs);
n.Write(cont);
n.Write("时间:" + DateTime.Now.ToString() + "\t" + " 信息:" + message +"\t" + method(st) + "\r\n");
n.Close();
logFs.Close();
if (fileInf.Length >= 1024 * 1024 * 200)
{
string NewName = logFolderPath + "Log" + DateTime.Now.ToString().Trim().Replace("/", "").Replace(":", "").ToString() + ".txt";
File.Move(fileName, NewName);
}
}
private static string method(System.Diagnostics.StackTrace st)
{
System.Diagnostics.StackFrame sf = st.GetFrame(0);
string mes = System.IO.Path.GetFileNameWithoutExtension(sf.GetFileName().ToString()) + "." + sf.GetMethod().Name + "\t" + sf.GetFileLineNumber() + "行" + sf.GetFileColumnNumber() + "列";
return mes;
}
}