大家好,我在SQL Server 2005数据库中,有一个float类型的数据,可以为空。当时没有赋值。在C#中,我把查询到的值绑定到dataGridView控件中,通过其CellEndEdit事件来编辑更新数据,但是这时候遇到问题。表中的该float类型数据为空,而我在update命令中,要获取这个数据并用于更新。float Ratio = Convert.ToSingle(dataGridView1.Rows[0].Cells[1].Value.Tostring());
该行代码出错,因为这个单元格中没有数据,即为空值!但是空值不能赋给float类型!大家有没有什么好的解决办法啊?

解决方案 »

  1.   

    float? Ratio = Convert.ToSingle(dataGridView1.Rows[0].Cells[1].Value.Tostring());
    加个问号代表可空值类型,float?即为Nullable<float>
      

  2.   

    基本语法没学会啊。所有的值类型,包括int float char等等,以及结构体,都是不能有null的。
      

  3.   

    先判断这个值 Convert.ToSingle(dataGridView1.Rows[0].Cells[1]是否为空,
    float Ratio; 
    if( Convert.ToSingle(dataGridView1.Rows[0].Cells[1]==null)
    {
      Ration=//默认值
    }
    else
    {
    Ratio = Convert.ToSingle(dataGridView1.Rows[0].Cells[1].Value.Tostring());
    }
      

  4.   

    如果你不要空值那就过滤DBNull
    如果你要空值就定义为float?,当DBNull的时候赋值为null
      

  5.   


    if ( !BNull.(dataGridView1.Rows[0].Cells[1].Value))
    {
       Ratio = Convert.ToSingle(dataGridView1.Rows[0].Cells[1].Value.Tostring());
    }
    else
    {
       Ratio =0;
    }
      

  6.   

    dataGridView1.Rows[0].Cells[1].Value==null?0:dataGridView1.Rows[0].Cells[1].Value.Tostring()
      

  7.   

    额,在数据库中用的float类型,当时没填数据,就没值啊。所以,这个“没值”是不是就代表“空值”呢?因为试验数据的原因,有的地方没值,有的地方是小数。所以这种情况,一般用什么类型的比较好呢?
      

  8.   

    额,在数据库中用的float类型,当时没填数据,就没值啊。所以,这个“没值”是不是就代表“空值”呢?因为试验数据的原因,有的地方没值,有的地方是小数。所以这种情况,一般用什么类型的比较好呢?
      

  9.   

    额,到头来还是给弄成0了啊null弄过去后,查询出来变0了