C#用Linq方法添加数据的时候,数据保存在内存中,SQL文件中没有保存数据

C#用Linq方法添加数据的时候,数据保存在内存中,SQL文件中没有保存数据,第1张

每次执行插入,修改,删除等语句后,调用DataContext的SubmitChanges()方法才会执行真正的数据库 *** 作..并且,该方法会自动为你前面执行的所有 *** 作生成一个事务,以保证 *** 作统一执行,相当方便..

外面没嵌套try...catch吧??检查下各字段是不是有什么约束

我们知道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("--------------------------------------------------------------")

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11372489.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存