您好,登錄后才能下訂單哦!
LINQ中怎么插入刪除和更新數(shù)據(jù)庫(kù)記錄備注,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
請(qǐng)看下面的代碼片斷:
public bool InsertUserStatus(string UserName) { eMailDataContext dt = new eMailDataContext(); try { //刪除可能存在的原有用戶狀態(tài)信息 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(); //} //} //創(chuàng)建新的用戶狀態(tài)信息 Table3 userstatus = new Table3 { abc = UserName }; //插入到數(shù)據(jù)庫(kù)表格UserStatus中 dt.Table3.InsertOnSubmit(userstatus);
上述代碼的意思是,在表格Table3 中先刪除可能存在的符合條件的記錄,然后在此表格中再插入一條記錄數(shù)據(jù)。上面的代碼將“可能”引發(fā)異常,將流程控制轉(zhuǎn)向(2)處。
這些“可能”在于,數(shù)據(jù)表格Table3 中最初無(wú)記錄,則必引發(fā)異常;如果有記錄,則一切符合既定操作要求。
于是,修改上面的代碼為如下:
public bool InsertUserStatus(string UserName) { eMailDataContext dt = new eMailDataContext(); try { //刪除可能存在的原有用戶狀態(tài)信息 if (dt.Table3.Count() != 0)// (1) { Table3 u = dt.Table3.First(m => m.abc == UserName); if (u != null) { dt.Table3.DeleteOnSubmit(u); dt.SubmitChanges(); } } //創(chuàng)建新的用戶狀態(tài)信息 Table3 userstatus = new Table3 { abc = UserName }; //插入到數(shù)據(jù)庫(kù)表格UserStatus中 dt.Table3.InsertOnSubmit(userstatus); dt.SubmitChanges();
也就是說(shuō),刪除操作前需要先判定數(shù)據(jù)表格是否記空--這可以通過紅色的if語(yǔ)句((1)處)來(lái)實(shí)現(xiàn)。
如此以來(lái),無(wú)論表格中是否事先存在記錄都可以往下執(zhí)行可能的刪除及插入操作了。
[二]
再來(lái)看一個(gè)例子,例如:
//刪除舊的郵件 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; } } |
上述操作同樣拋出異常。因此,需要同上面提到的那樣,先進(jìn)行數(shù)據(jù)庫(kù)表格記錄數(shù)據(jù)判斷,再進(jìn)行可能的刪除操作。因此,再修改上面代碼,如下所示:
//刪除舊的郵件 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; } } |
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。