linqtosql:用日志记录LINQ中的所有增删改的SQL语句的思路方法来源: 发布时间:星期三, 2009年1月21日 浏览:5次 评论:0
="t18">我们知道LINQ中增删改都要SubmitChanges思路方法我们记录所有SQL方式就是重写(override)DataContext中SubmitChanges思路方法为了避免每次修改dbml文件时影响我们自己写内容我们要先写个DataContext分布类在这个类中重写SubmitChanges思路方法
代码如下 Code public partial DataClasses1DataContext { public override void SubmitChanges(.Data.Linq.ConflictMode failureMode) { //记录日志(每天个文件记录所有更改sql,日志会存在第个盘log文件夹下) directory = Path.Combine(Directory.GetLogicalDrives.First, "log"); Directory.CreateDirectory(directory); logFile = Path.Combine(directory, "log" + DateTime.Now.ToLongDateString + ".txt"); using (StreamWriter w = File.AppendText(logFile)) { w.WriteLine("发生时间:{0}", DateTime.Now.); w.WriteLine("日志内容为:"); this.Log = w; try { base.SubmitChanges(failureMode); } catch (Exception e) { w.WriteLine("异常:" + e.Message + e.StackTrace); w.WriteLine("--------------------------------------------------------------"); throw; } finally { this.Log = null; } w.WriteLine("--------------------------------------------------------------"); } } } 如果想把sql语句全部记录到数据库代码如下: Code public partial DataClasses1DataContext { StringBuilder sb = StringBuilder; using (StringWriter sw = StringWriter(sb)) { sw.WriteLine("发生时间:{0}", DateTime.Now.); sw.WriteLine("日志内容为:"); this.Log = sw; try { base.SubmitChanges(failureMode); sqlStr = "insert o logTable(Content)values( '"+sb.+"')"; //SqlConnection con= using (SqlConnection con= SqlConnection(this.Connection.ConnectionString)) { con.Open; SqlCommand cmd = SqlCommand(sqlStr, con); cmd.ExecuteNonQuery; } } catch (Exception e) { //记录日志(每天个文件记录所有更改sql,日志会存在第个盘log文件夹下) directory = Path.Combine(Directory.GetLogicalDrives.First, "log"); Directory.CreateDirectory(directory); logFile = Path.Combine(directory, "log" + DateTime.Now.ToLongDateString + ".txt"); using (StreamWriter w = File.AppendText(logFile)) { w.WriteLine("发生时间:{0}", DateTime.Now.); w.WriteLine("日志内容为:"); w.WriteLine(e.Message); } } finally { this.Log = null; } } 源码下载 http://files.cnblogs.com/nuaalfm/LogLinqSql.rar http://www.cnblogs.com/nuaalfm/archive/2009/01/20/1378841.html 0
相关文章
读者评论
发表评论 |