[英]Linq to SQL - SubmitChanges() - Check if insert was successful
我有以下代碼-
public bool InsertUser(params)
{
User objUser = new User(params);
objDataContext.Users.InsertOnSubmit(objUser);
objDataContext.SubmitChanges();
return objUser.Id >= 0;
}
調用方法-
if (!_database.InsertUser(params))
{
//WriteErrorMessage
}
從各篇文章中我了解到,如果我們想知道插入是否成功,我們應該檢查是否拋出了任何異常。
但是,上面的代碼取決於新插入的ID是否> = 0。
可以請指導-
謝謝!
如果我應該更改上面的代碼並添加try-catch呢?
不,不要那樣做,因為那樣的話您將無法獲得失敗的確切原因。 如果您抓住了它,那么失敗的信息將丟失並且不會傳播給用戶。
但是,如果您認為向用戶授予異常不是一個好主意,並且需要捕獲它,則只需將其放置在try catch中,如下所示:
public bool SubmitChanges()
{
try{
//your code
db.SubmitChanges();
return true;
}
catch(Exception e)
{
// some code to catch exception
return false;
}
}
是否有任何可能的情況,SubmitChanges()不會拋出錯誤,而是新插入的Id <= 0?
如果您獲得的值> = 0,則無需擔心。
您還可以像這樣使用GetChangeSet :
獲取DataContext跟蹤的已修改對象。
ChangeSet cs = db.GetChangeSet();
Console.Write("Changes: {0}", cs);
如果您的代碼執行objDataContext.SubmitChanges();
行objDataContext.SubmitChanges();
並return objUser.Id >= 0;
您的插入將成功。 之后您不必擔心。 讓sql server和您的編譯器負責其余的工作
是的,可以使用try catch來有效地捕獲錯誤並顯示適當的消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.