2015-10-19 68 views
-1

我有一个关于将数据类型nvarchar转换为十进制的问题,在我更新这些信息的过程中,我的解决方案在关于转换的错误中断了。所以这是我的代码:将数据类型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为十进制

有人知道如何我修复这个错误? 谢谢。

+6

请你的代码复制到你的问题。阅读问题中的代码要比打开非现场图片的链接要容易得多。 –

+1

你做了一些研究吗?你明白错误告诉你什么吗?这也不是从你展示的代码中抛出。 – CodeCaster

回答

0

利用一些可重用的代码,以便能够将字符串解析为小数。字符串最可能为空,空或由非数字字符组成。创建一个静态扩展类并尝试下面的方法。

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; 
    } 
相关问题