我有一个关于将数据类型nvarchar转换为十进制的问题,在我更新这些信息的过程中,我的解决方案在转换错误时中断。所以这是我的代码:
我的代码:
objGrupoComplementar.CusteioSegurado = (reader.GetDecimal(reader.GetOrdinal("CusteioSegurado")));
objGrupoComplementar.CusteioEstipulante = (reader.GetDecimal(reader.GetOrdinal("CusteioEstipulante")));
objGrupoComplementar.ProLabore = (reader.GetDecimal(reader.GetOrdinal("Prolabore")));
,这是我的错误:
"Erro ao Alterar Cadastro Grupo Complementar: Error converting data type nvarchar to decimal."
将nvarchar转换为十进制
时出错有人知道我如何解决这个错误? 谢谢。
答案 0 :(得分:0)
利用一些可重用的代码,以便能够将字符串解析为十进制。字符串很可能是null,空或由非数字字符组成。创建一个静态扩展类并尝试以下方法。
public static decimal ConvertAsDecimal(this string input, decimal defaultValue = default(decimal))
{
if (!string.IsNullOrWhiteSpace(input))
{
decimal result;
if (decimal.TryParse(input, out result))
{
return result;
}
}
return defaultValue;
}
或者对于可以为空的十进制来说是这样的:
public static decimal? ConvertAsDecimalNullable(this string input, decimal? defaultValue = null)
{
if (!string.IsNullOrWhiteSpace(input))
{
decimal result;
if (decimal.TryParse(input, out result))
{
return result;
}
}
return defaultValue;
}