gpt4 book ai didi

c# - Int32.TryParse() 或 (int?)command.ExecuteScalar()

转载 作者:IT王子 更新时间:2023-10-29 04:52:12 24 4
gpt4 key购买 nike

我有一个 SQL 查询,它只返回一个字段 - 一个 INT 类型的 ID。

而且我必须在 C# 代码中将它用作整数。

哪种方式更快并且占用更少的内存?

int id;
if(Int32.TryParse(command.ExecuteScalar().ToString(), out id))
{
// use id
}

int? id = (int?)command.ExecuteScalar();
if(id.HasValue)
{
// use id.Value
}

int? id = command.ExecuteScalar() as int?;
if(id.HasValue)
{
// use id.Value
}

最佳答案

这三种性能之间的差异可以忽略不计。瓶颈是将数据从数据库移动到您的应用程序,而不是简单的转换或方法调用。

我会选择:

int? id = (int?)command.ExecuteScalar();
if(id.HasValue)
{
// use id.Value
}

较早失败,如果有一天人们更改命令以返回字符串或日期,至少它会崩溃,您将有机会修复它。

我也只使用简单的 int cast IF 我一直希望命令返回一个结果。

请注意,与执行标量相比,我通常更喜欢返回输出参数,因为执行标量感觉很脆弱(第一行第一列是返回值的约定不适合我)。

关于c# - Int32.TryParse() 或 (int?)command.ExecuteScalar(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1174930/

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