gpt4 book ai didi

c# - Long.Tryparse 重载和转换错误 C#

转载 作者:太空宇宙 更新时间:2023-11-03 18:14:10 24 4
gpt4 key购买 nike

我在使用这段代码时遇到困难,因为我试图对数据集中的数据进行长时间的特定转换。

我正在尝试检查是否可以转换数据集中该位置内的值。如果它不起作用,则意味着数据集中没有项目,因为所有其他条目(从 txt 文件中读取)都是有效的

代码:

long Recid = 0;
Boolean checkrecid = long.TryParse(dts.Tables[0].Rows[0]["RECID"], out Recid)

错误:

The best overloaded method match for 'long.TryParse(string, out long)' has some invalid arguments and
Argument 1: cannot convert from 'object' to 'string'

提前致谢。

最佳答案

两种选择:

如果您的数据一个字符串,则将其转换为字符串

long Recid = 0;
Boolean checkrecid = long.TryParse((string)dts.Tables[0].Rows[0]["RECID"], out Recid)

否则,对其调用.ToString()

long Recid = 0;
Boolean checkrecid = long.TryParse(dts.Tables[0].Rows[0]["RECID"].ToString(), out Recid)

你需要这样做的原因是因为 long.TryParse() 方法只接受一个 string 的实例作为它的第一个参数 http://msdn.microsoft.com/en-us/library/zc2x2b1h.aspx

来自数据集的数据类型为 object,因此 Int64.TryParse() 方法无法确定它是否为字符串并且它正在失败。 (一般来说,编程不允许出现歧义,这就是为什么 TryParse 方法不会尝试为您转换它的原因 - 您必须明确说明您想要什么以及您提供什么)。

数据集非常灵活,因为您可以在其中存储任何 object,但是对于程序员来说,在再次取回类型后将类型转换回来需要更多的工作。其他替代方案(如强类型数据集)通过更严格地确定可以在其中存储的类型来解决该问题,但您不必一直转换内容。

关于c# - Long.Tryparse 重载和转换错误 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9517296/

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