我看了,那一列的数据类型是float的,前面的0,1,2都能读出来,就这里不能读出来,不知道为什么!请高手帮帮忙。。谢谢。

解决方案 »

  1.   

    是否数据库中该字段的值为NULL?如果是,利用DataReader.IsDBNull(3)判断
      

  2.   

    可能是字段为空
    while (sdr.Read())
    {
        if (!sdr.IsDBNull(3))
        {
              float f = sdr.GetFloat(3);
        }
     }
      

  3.   

    还是不行哦。。郁闷。。我想从数据库中取出每行的数据,我是用Bean的方式来将每行封装成一个对象,然后将对象装到一个HashTable里面返回。。这样可以吗?最好的方法应该怎样做呢?谢谢高手解答,实在是太急了。
      

  4.   

    你确定你那列的值都是float类型的吗  还有检查你哪里值会面有没有多余的空格 
      

  5.   

    参考:
                List<EmployeeInfo> employees = new List<EmployeeInfo>();            SqlOperator op = new SqlOperator();
                string cmdText = "Select [Id],[Name],[Sex],[BirthDay],[DepartmentId] From Employees";
                SqlDataReader dr = op.ExecuteReader(cmdText);            while (dr.Read())
                {
                    EmployeeInfo emp = new EmployeeInfo((int)dr["Id"], dr["Name"].ToString(), dr["Sex"].ToString(), (DateTime)dr["BirthDay"], (int)dr["DepartmentId"]);
                    employees.Add(emp);
                }            return employees;注意:上述代码中应用到了List泛型列表和多层的概念,SqlOperator是自定义的数据库操作类
      

  6.   

    上面的例子只是部分代码,没有用到多层,其中泛型列表位于命名空间System.Collections.Generic
      

  7.   

    1、确定该列类型为float
    2、确定该列不为null