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

首頁 > 編程 > .NET > 正文

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

2024-07-10 13:13:17
字體:
來源:轉載
供稿:網(wǎng)友
我們知道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("發(fā)生時間:{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語句全部記錄到數(shù)據(jù)庫的代碼如下:

Code

public partial class DataClasses1DataContext
    {
        StringBuilder sb = new StringBuilder();
            using (StringWriter sw = new StringWriter(sb))
            {

                sw.WriteLine("發(fā)生時間:{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("發(fā)生時間:{0}", DateTime.Now.ToString());
                        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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 安新县| 麟游县| 林州市| 始兴县| 阜城县| 巴林左旗| 天祝| 报价| 泰兴市| 独山县| 江山市| 无棣县| 永宁县| 崇信县| 佛坪县| 宜章县| 凤冈县| 林州市| 剑河县| 六安市| 长治县| 黄冈市| 米泉市| 正镶白旗| 湛江市| 新余市| 阳谷县| 揭阳市| 平舆县| 株洲县| 崇信县| 曲麻莱县| 乌审旗| 大埔区| 灵宝市| 博湖县| 阿荣旗| 乐都县| 阿克| 榆林市| 宣汉县|