有一文本框,定义如下:
protected Infragistics.WebUI.WebDataInput.WebTextEdit  ctl_GRAGE_INTERCHANGE;
然后把其中的值赋到mReapEntity.GRAGE_INTERCHANGE,
mReapEntity.GRAGE_INTERCHANGE=Convert.ToDecimal(this.ctl_GRAGE_INTERCHANGE.Text.Trim())
如果文本框中有值可以修改,比如80->85.
但是把它设为NULL的话,就出现:"输入字符串的格式不正确"
这是为什么啊????
高手们...

解决方案 »

  1.   

    在事件里面添加:if(this.ctl_GRAGE_INTERCHANGE.Text.Trim()=="")

      MessageBox.Show("文本框不能为空!");
      return;
    }
      

  2.   

    if(this.ctl_GRAGE_INTERCHANGE.Text.Trim()=="")
    {
    MessageBox.Show("文本框不能为空!");
    return;
    }
      

  3.   

    因为ToDecimal()不能识别"NULL"的字符串
      

  4.   

    大侠:
        this.ctl_GRAGE_INTERCHANGE.Text.Trim()是可以空的..
        我没有把它设为不允许空的..
         还是感谢你!!!
      

  5.   

    是不是如果this.ctl_GRAGE_INTERCHANGE.Text.Trim()是空的,
    Convert.ToDecimal(this.ctl_GRAGE_INTERCHANGE.Text.Trim())就回出错啊!!
      

  6.   

    是不是如果this.ctl_GRAGE_INTERCHANGE.Text.Trim()是空的,
    Convert.ToDecimal(this.ctl_GRAGE_INTERCHANGE.Text.Trim())就回出错啊!!-----------------------------------------
    肯定出错
    不知道你想要干什么???
    在Convert.ToDecimal(this.ctl_GRAGE_INTERCHANGE.Text.Trim())前面加一句代码就可以了。。
    if(this.ctl_GRAGE_INTERCHANGE.Text.Trim()!="")Convert.ToDecimal(this.ctl_GRAGE_INTERCHANGE.Text.Trim());
      

  7.   

    在Convert.ToDecimal(this.ctl_GRAGE_INTERCHANGE.Text.Trim())前面加一句代码就可以了。。
    if(this.ctl_GRAGE_INTERCHANGE.Text.Trim()!="")Convert.ToDecimal(this.ctl_GRAGE_INTERCHANGE.Text.Trim());
    --------------------------------------------------------
    这是不为空的情况,可把它转化为Decimal.
    现在的情况是如果ctl_GRAGE_INTERCHANGE里面有值,我现在想把它删掉,里面什么也不填,也就是改成TEXT里面什么也不显示.按上面的语句,程序不会执行任何代码.也就无法改.现在我想请教的是为空的情况..
      

  8.   

    判断如果为空的时候把decimal设置为Convert.ToDecimal("0");
    0或者其他的默认值
    就可以了嘛
      

  9.   

    一般这样的数都是有一个默认值的吧?mReapEntity.GRAGE_INTERCHANGE=Convert.ToDecimal(this.ctl_GRAGE_INTERCHANGE.Text!=null?this.ctl_GRAGE_INTERCHANGE.Text.Trim():"0");
      

  10.   

    我晕
    不知道你想干啥??
    如果改成空的话,你就别转换了,直接把空值赋过去。。
    你得说清楚,你把值改为空之后要做什么处理啊。。if(this.ctl_GRAGE_INTERCHANGE.Text.Trim()!="")
     Convert.ToDecimal(this.ctl_GRAGE_INTERCHANGE.Text.Trim());
    else
     {
        直接把空值赋给过去。。
     }
      

  11.   

    直接把空值赋过去,,报错.
    系统说:输入的字符串不正确..
    我是这样写的:
    if(this.ctl_ASSIGNMENT_AVG.Text.Trim()!="")
    {mReapEntity.ASSIGNMENT_AVG=Convert.ToDecimal(this.ctl_ASSIGNMENT_AVG.Text.Trim());}
    else
    {mReapEntity.ASSIGNMENT_AVG=0;}--->把它设为零.
    你的意思是:
    else
     {
        直接把空值赋给过去。。--->怎么赋空值?
     }
      

  12.   

    你那样写是可以的。。我的意思是说:假如你要把这个数放在某个控件中显示出来,比如说在文本框textBox1中显示,就可以作这样的处理:
    if(this.ctl_ASSIGNMENT_AVG.Text.Trim()!="")
    {mReapEntity.ASSIGNMENT_AVG=Convert.ToDecimal(this.ctl_ASSIGNMENT_AVG.Text.Trim());}
    else
    {
                mReapEntity.ASSIGNMENT_AVG=0;
                this.textBox1.Text="";  //加上这一句
             }
    或者在用到mReapEntity.ASSIGNMENT_AVG这个数的时候再作判断:
    if(mReapEntity.ASSIGNMENT_AVG=0)this.textBox1.Text="";