gpt4 book ai didi

c# - C# 中比较字符串 null 或空

转载 作者:行者123 更新时间:2023-11-29 11:44:42 26 4
gpt4 key购买 nike

在我的 MySQL Db 表中,我有字段 Check

Check 字段中存储的值可能是:null-1

Check字段中存储的值为null-1时,我需要返回xxx值(value)。我已经尝试过了:

string Check = sdr["Check"] == DBNull.Value || sdr["Check"] == "-1,00" ? "xxx" : sdr["Check"].ToString();

没有成功,因为输出始终是-1,00

如何解决这个问题?

请帮助我,非常感谢。

最佳答案

问题是您比较了错误的对象。从 System.Data 结果集返回的值是实际值的包装器。您想要的是键入的版本。基本上,检查应该如下所示:

int checkIndex = sdr.GetOrdinal("Check");
string Check = sdr.IsDBNull(checkIndex) || (sdr.GetString(checkIndex) == "-1,00") ? "xxx" : sdr.GetString(checkIndex);

如果您的“Check”实际上是一个数字,您可能需要使用 IntValue("Check") 调用,只是为了处理全局化问题(如果您的应用部署在使用“。”而不是小数点的“,”。

参见https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader(v=vs.110).aspx获取完整的 API。

<小时/>

如果您的 MySQL 数据库未设置为使用与 C# 应用程序相同的区域设置格式,则您对数字格式的假设可能不正确。为了制作更强大的支票版本,我建议如下:

 int checkIndex = sdr.GetOrdinal("Check");
string Check = "xxx";
double checkValue = sdr.IsDBNull(checkIndex) ? -1 : Convert.ToDouble(sdr[checkIndex]);

if (checkValue != -1)
{
Check = checkValue.ToString(CultureInfo.CurrentCulture);
}

关于c# - C# 中比较字符串 null 或空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35154642/

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