gpt4 book ai didi

c# - 在 SqlCommand-ExecuteScalar 错误处理上转换为 int

转载 作者:太空狗 更新时间:2023-10-29 17:31:32 24 4
gpt4 key购买 nike

我的代码可能很脆弱。此处声明

 int countDis = (int)cmd.ExecuteScalar();

如果我将存储过程更改为不返回任何内容,那么转换为 (int) 将会失败。如果我简单地删除它,那么我就无法编译。

在这种情况下,防御性编码的最佳代码实践是什么?

最佳答案

只需将代码更改为:

int countDis = Convert.ToInt32(cmd.ExecuteScalar());

这将确保即使 ExecuteScalar 返回 null,由于未在存储过程中选择任何内容,countDis 的值为0。因为 Convert.ToInt32(null) = 0

更新(10/12/2018)

更安全的版本。感谢@Moe 突出显示 DBNull 案例。

object result = cmd.ExecuteScalar();
result = (result == DBNull.Value) ? null : result;
int countDis = Convert.ToInt32(result);

关于c# - 在 SqlCommand-ExecuteScalar 错误处理上转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32494353/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com