Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无效的强制转换异常,数据库异常方法,未被其他编码器共享_C# - Fatal编程技术网

C# 无效的强制转换异常,数据库异常方法,未被其他编码器共享

C# 无效的强制转换异常,数据库异常方法,未被其他编码器共享,c#,C#,我正在一个仪表板应用程序中实现一个新功能,该应用程序使用存储过程从姐妹产品的SQL Server数据库获取数据。我的编码合作伙伴上次使用了代码,并建立了新的调用,我们已经将其部署到生产中。我正在充实他写的内容,并在其上加以补充 首先,我获得了最新版本,并更新了存储过程名称,使其与数据库中现在调用的名称相匹配,但当我尝试使用它们时,获取数据的帮助器方法抛出System.InvalidCastException 代码如下所示: public static Decimal? GetNullibleDe

我正在一个仪表板应用程序中实现一个新功能,该应用程序使用存储过程从姐妹产品的SQL Server数据库获取数据。我的编码合作伙伴上次使用了代码,并建立了新的调用,我们已经将其部署到生产中。我正在充实他写的内容,并在其上加以补充

首先,我获得了最新版本,并更新了存储过程名称,使其与数据库中现在调用的名称相匹配,但当我尝试使用它们时,获取数据的帮助器方法抛出System.InvalidCastException

代码如下所示:

public static Decimal? GetNullibleDecimal(this SqlDataReader reader, int fieldIndex)
{
  object value = reader.GetValue(fieldIndex);
  return value is DBNULL ? null : (Decimal?)value;
}
我让我的编码伙伴下载并尝试相同的更改,他没有看到这个异常。我们都在运行从NuGet使用的相同版本的库。很明显,我的本地机器上有东西坏了,但我不知道它可能是什么,也不知道在哪里可以找到它

有人有什么想法吗?将上述代码段更改为转换而不是强制转换是否可以安全地解决此问题

提前感谢,


Andrew S.Giles

您的查询是按照
select*…
的思路进行的,还是选择了特定的列名?可能是它们在你的机器上以不同的顺序返回,所以你机器上的十进制索引与他的不同。不,我知道的足够多了,不能这样做。我认为,在对旧代码进行了一些额外的检查之后,我所做的一些更改导致了错误。。。我现在正在恢复,看看是否能找到它。@DrewGiles您是否绝对确定您和他正在同一台服务器上查看完全相同的数据库?如果它们是本地托管的,是否应用了所有SQL脚本来更新架构?