您好,登錄后才能下訂單哦!
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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。