我有以下代码 -
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。
可以请指导 -
谢谢!
答案 0 :(得分:4)
如果我应该更改上面的代码并添加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);
答案 1 :(得分:1)
如果您的代码执行第objDataContext.SubmitChanges();
行并且return objUser.Id >= 0;
,则您的插入将成功。之后你不必担心。让sql server和你的编译器来处理其余的
是可以使用try catch有效捕获错误并显示相应的消息。