求助:文本框的Text为空时保存数据出错,出错信息:“将数据类型varchar转换为numeric时出错”,Text不为空时没问题。
文本框对应的数据库表的字段为decimal数据类型,已设为充许空,默认小数据位数据为3位。

解决方案 »

  1.   

    因为Text默认是string类型,当你text为空的时候等于将一个空字符串转换成数字型。
    你判断一下,当如果为空的时候默认保存0就是了。
      

  2.   

    手动改一下,把取的文本内容改为:
    txtNum.Text.Trim()==""?"0":txtNum.Text;
      

  3.   

    if text1.text)==""
    {
        sql="update table1 set field1=null ";
    }
    else
    {
        sql="update table1 set field1="+ Decimal.Parse (text1.text) ;
    }
      
    *****************************************************************************
    欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码) 
    http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
      

  4.   

    int xxx  = 0;
    xxx = txt1.Text.Trim()==""?"0":Convert.ToInt32(txt1.Text);
      

  5.   

    public static int GetCtrlInt(Control sender, int nullVal)
    {
    try
    {
    if (null == sender.Text || 0 == sender.Text.Length)
    {
    return nullVal;
    }
    else
    {
    return Convert.ToInt32(sender.Text);
    }
    }
    catch (FormatException e)
    {
    throw new ConvertException("数据格式错误, 不是一个整数的格式!", e, sender);
    }
    catch (OverflowException e) 
    {
    throw new ConvertException("数据大小溢出[" + Int32.MinValue + " - " + Int32.MaxValue + "]!", e, sender);
    }
    catch (Exception e)
    {
    throw new ConvertException("数据无法转换" + e.Message  + "!", e, sender);
    }
    }nullVal为你想要初始化的值