C# 错误:无法将“System.Int32”类型的对象强制转换为“System.String”类型

C# 错误:无法将“System.Int32”类型的对象强制转换为“System.String”类型,c#,asp.net,C#,Asp.net,我使用下面的函数从数据库中获取值 问题是当我选择int类型的列时 我遇到此错误,无法将“System.Int32”类型的对象强制转换为“System.String”类型 在此行中,result.Adddr.GetString0 代码 尝试result.Adddr.GetValue0.ToString 要避免GetValue的返回为null,请执行以下操作- result.Add((sqlreader.IsDBNull(0) ? "" : dr.GetValue(0).ToString());

我使用下面的函数从数据库中获取值

问题是当我选择int类型的列时

我遇到此错误,无法将“System.Int32”类型的对象强制转换为“System.String”类型

在此行中,result.Adddr.GetString0

代码

尝试result.Adddr.GetValue0.ToString

要避免GetValue的返回为null,请执行以下操作-

result.Add((sqlreader.IsDBNull(0) ? "" : dr.GetValue(0).ToString());
尝试result.Adddr.GetValue0.ToString

要避免GetValue的返回为null,请执行以下操作-

result.Add((sqlreader.IsDBNull(0) ? "" : dr.GetValue(0).ToString());
当我选择int类型的列时

根据代码,您正在尝试选择字符串类型的列:

如果列为int,则获取int:

然后可以将其转换为列表中的字符串:

result.Add(dr.GetInt32(0).ToString());
特别是关于错误,请注意以下内容:

不进行任何转换;因此,检索到的数据必须已经是字符串

当我选择int类型的列时

根据代码,您正在尝试选择字符串类型的列:

如果列为int,则获取int:

然后可以将其转换为列表中的字符串:

result.Add(dr.GetInt32(0).ToString());
特别是关于错误,请注意以下内容:

不进行任何转换;因此,检索到的数据必须已经是字符串


我遇到了相同类型的错误:“System.Int32”改为“System.String”

这里如果你想绑定字符串值的意思

dr.GetString(1)
如果要打印int值意味着

dr.GetInt32(0)
还有一个错误:指定的强制转换无效

如果你想要字符串意味着你需要把

dr.GetString(1)
最初我做了dr.GetString0,它显示指定的强制转换无效。
同样,如果需要int值,则意味着您需要将dr.GetInt320而不是dr.GetInt321放置在同一位置。我遇到了相同类型的错误:“System.Int32”改为“System.String”

这里如果你想绑定字符串值的意思

dr.GetString(1)
如果要打印int值意味着

dr.GetInt32(0)
还有一个错误:指定的强制转换无效

如果你想要字符串意味着你需要把

dr.GetString(1)
最初我做了dr.GetString0,它显示指定的强制转换无效。
同样,如果您需要int值,则意味着您需要放置dr.GetInt320而不是dr.GetInt321

您可以向我们展示您的表结构吗?您可以向我们展示您的表结构吗?您可以解释为什么答案是什么吗?如果你不解释问题,不解释如何解决问题,不解释原因,那么对任何人来说,真正理解问题都没有多大帮助。太好了。如果它解决了您的问题,请选择作为答案。谢谢,为了防止它可能是空值,我将添加约束来检查空条件。我会把它添加到我的答案中。你能解释一下为什么答案是什么吗?如果你不解释问题,不解释如何解决问题,不解释原因,那么对任何人来说,真正理解问题都没有多大帮助。太好了。如果它解决了您的问题,请选择作为答案。谢谢,为了防止它可能是空值,我将添加约束来检查空条件。我将把它添加到我的答案中。这应该标记为答案,因为它很好地解释了问题,也解释了解决问题。这应该标记为答案,因为它很好地解释了问题,也解释了解决问题