C#中db.SaveChanges()的返回值问题

coderk2014 2016-10-27 11:10:07
首先C#中db.SaveChanges()的返回值为影响的行数。

我一开始是通过返回值大于0来表示操作成功,否则表示操作失败,如下代码:
C# code

int r = db.SaveChanges();
if (r > 0)
{
result = true;
}
else
{
result-false;
}

后来我修改数据时(比如修改用户对象信息),我特意没有改动任何数据,直接点击修改,然后调试,
发现这个时候的返回值为0,。
这个情况的返回值为0,虽然表示没有影响行数,但是不能说操作失败吧!

所以我就有点疑问,我是通过判断SaveChanges返回值是否>=0来表示成功与否呢,还是通过有无异常来判断是否成功呢?
希望大神们给予解答
...全文
3453 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
coderk2014 2016-10-27
  • 打赏
  • 举报
回复
引用 3 楼 D56233577 的回复:
同1楼,应该用异常。
谢谢
coderk2014 2016-10-27
  • 打赏
  • 举报
回复
引用 2 楼 sp1234 的回复:
另外,所谓“result=true”、"result=false“也是画蛇添足的东西。如果程序异常,那么正规地抛出异常就行了。 只有那些初学 c 语言的人才扯什么“返回 0、1 来表示执行结果”这种设计,因为它们所用的语言工具,根本就没有异常机制的框架!
谢谢
coderk2014 2016-10-27
  • 打赏
  • 举报
回复
引用 楼主 coderK2014 的回复:
首先C#中db.SaveChanges()的返回值为影响的行数。 我一开始是通过返回值大于0来表示操作成功,否则表示操作失败,如下代码: C# code

int r = db.SaveChanges();
 if (r > 0)
{
        result = true;
 }
else
{
        result-false;
}
后来我修改数据时(比如修改用户对象信息),我特意没有改动任何数据,直接点击修改,然后调试, 发现这个时候的返回值为0,。 这个情况的返回值为0,虽然表示没有影响行数,但是不能说操作失败吧! 所以我就有点疑问,我是通过判断SaveChanges返回值是否>=0来表示成功与否呢,还是通过有无异常来判断是否成功呢? 希望大神们给予解答
谢谢
D56233577 2016-10-27
  • 打赏
  • 举报
回复
同1楼,应该用异常。
  • 打赏
  • 举报
回复
另外,所谓“result=true”、"result=false“也是画蛇添足的东西。如果程序异常,那么正规地抛出异常就行了。 只有那些初学 c 语言的人才扯什么“返回 0、1 来表示执行结果”这种设计,因为它们所用的语言工具,根本就没有异常机制的框架!
  • 打赏
  • 举报
回复
当然是用“异常”来判断是否失败。谁告诉你用影响行数来判断sql语句执行是否失败的的?

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧