LINQ中怎么插入删除和更新数据库记录备注,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
请看下面的代码片断:
public bool InsertUserStatus(string UserName) { eMailDataContext dt = new eMailDataContext(); try { //删除可能存在的原有用户状态信息 Table3 u = dt.Table3.First(m => m.abc == UserName); //if (dt.Table3.Count() != 0) //{ // Table3 u = dt.Table3.First(m => m.abc == UserName); //if (u != null) //{ dt.Table3.DeleteOnSubmit(u); dt.SubmitChanges(); //} //} //创建新的用户状态信息 Table3 userstatus = new Table3 { abc = UserName }; //插入到数据库表格UserStatus中 dt.Table3.InsertOnSubmit(userstatus);
上述代码的意思是,在表格Table3 中先删除可能存在的符合条件的记录,然后在此表格中再插入一条记录数据。上面的代码将“可能”引发异常,将流程控制转向(2)处。
这些“可能”在于,数据表格Table3 中最初无记录,则必引发异常;如果有记录,则一切符合既定操作要求。
于是,修改上面的代码为如下:
public bool InsertUserStatus(string UserName) { eMailDataContext dt = new eMailDataContext(); try { //删除可能存在的原有用户状态信息 if (dt.Table3.Count() != 0)// (1) { Table3 u = dt.Table3.First(m => m.abc == UserName); if (u != null) { dt.Table3.DeleteOnSubmit(u); dt.SubmitChanges(); } } //创建新的用户状态信息 Table3 userstatus = new Table3 { abc = UserName }; //插入到数据库表格UserStatus中 dt.Table3.InsertOnSubmit(userstatus); dt.SubmitChanges();
也就是说,删除操作前需要先判定数据表格是否记空--这可以通过红色的if语句((1)处)来实现。
如此以来,无论表格中是否事先存在记录都可以往下执行可能的删除及插入操作了。
[二]
再来看一个例子,例如:
//删除旧的邮件 public static void DeleteSubject(string UserName, string host) { eMailDataContext dt = new eMailDataContext(); string cmdText = "delete from MailDownloadTemp where UserName=" + "'"+UserName +"'"+ " and Host=" + "'"+host+"'"; try { int result = dt.ExecuteCommand(cmdText); return; } catch (System.InvalidOperationException) { return; } } |
上述操作同样抛出异常。因此,需要同上面提到的那样,先进行数据库表格记录数据判断,再进行可能的删除操作。因此,再修改上面代码,如下所示:
//删除旧的邮件 public static void DeleteSubject(string UserName, string host) { eMailDataContext dt = new eMailDataContext(); if (dt.MailDownloadTemp.Count() == 0) return; string cmdText = "delete from MailDownloadTemp where UserName=" + "'"+UserName +"'"+ " and Host=" + "'"+host+"'"; try { int result = dt.ExecuteCommand(cmdText); return; } catch (System.InvalidOperationException) { return; } } |
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。