溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

LINQ中怎么插入刪除和更新數(shù)據(jù)庫(kù)記錄備注

發(fā)布時(shí)間:2021-08-13 13:49:56 來(lái)源:億速云 閱讀:114 作者:Leah 欄目:編程語(yǔ)言

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ì)億速云的支持。

向AI問一下細(xì)節(jié)

免責(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)容。

AI