国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

用日志記錄LINQ中的所有增刪改的SQL語句的方法

2019-11-17 04:20:49
字體:
來源:轉載
供稿:網友

我們知道LINQ中的增刪改都要調用SubmitChanges方法,我們記錄所有SQL的方式就是重寫(override)DataContext中的SubmitChanges方法,為了避免每次修改dbml文件時影響我們自己寫的內容,我們要先寫一個DataContext的分布類,在這個類中重寫SubmitChanges方法。
代碼如下
Code
public partial class DataClasses1DataContext
    {
        public override void SubmitChanges(System.Data.Linq.ConflictMode failureMode)
        {
            //記錄日志(每天一個文件,記錄所有更改sql,日志會存在第一個盤的log文件夾下)
            string directory = Path.Combine(Directory.GetLogicalDrives().First(), "log");
            Directory.CreateDirectory(directory);
            string logFile = Path.Combine(directory,
                "log" + DateTime.Now.ToLongDateString() + ".txt");
            using (StreamWriter w = File.AppendText(logFile))
            {
              
                w.WriteLine("發生時間:{0}", DateTime.Now.ToString());
                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 class DataClasses1DataContext
    {
        StringBuilder sb = new StringBuilder();
            using (StringWriter sw = new StringWriter(sb))
            {

                sw.WriteLine("發生時間:{0}", DateTime.Now.ToString());
                sw.WriteLine("日志內容為:");
                this.Log = sw;
                try
                {
                    base.SubmitChanges(failureMode);
                    string sqlStr = "insert into logTable(Content)values( '"+sb.ToString()+"')";
                    //SqlConnection con=
                    using (SqlConnection con=new SqlConnection(this.Connection.ConnectionString))
                    {
                        con.Open();
                        SqlCommand cmd = new SqlCommand(sqlStr, con);
                        cmd.ExecuteNonQuery();
                    }

                }
                catch (Exception e)
                {
                    //記錄日志(每天一個文件,記錄所有更改sql,日志會存在第一個盤的log文件夾下)

                    string directory = Path.Combine(Directory.GetLogicalDrives().First(), "log");
                    Directory.CreateDirectory(directory);
                    string logFile = Path.Combine(directory,
                        "log" + DateTime.Now.ToLongDateString() + ".txt");
                    using (StreamWriter w = File.AppendText(logFile))
                    {
                        w.WriteLine("發生時間:{0}", DateTime.Now.ToString());
                        w.WriteLine("日志內容為:");
                        w.WriteLine(e.Message);

                    }
                }
                finally
                {
                    this.Log = null;
                }
    }
 

源碼下載
http://files.VEVb.com/nuaalfm/LogLinqSql.rar
http://m.survivalescaperooms.com/nuaalfm/archive/2009/01/20/1378841.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宝应县| 洛隆县| 长兴县| 孝感市| 南阳市| 普定县| 鄂温| 安顺市| 尚志市| 通江县| 南溪县| 安仁县| 新闻| 云安县| 历史| 双桥区| 大港区| 安吉县| 保定市| 宁化县| 新蔡县| 新密市| 樟树市| 台前县| 黑河市| 康保县| 闽清县| 广宗县| 纳雍县| 健康| 海南省| 抚远县| 西乌珠穆沁旗| 沁阳市| 大悟县| 九寨沟县| 兴化市| 沾益县| 监利县| 子洲县| 阿尔山市|