指定的强制转换无效 - 浮动

时间:2012-07-17 09:27:07

标签: sql viewmodel datareader

不确定为什么我收到此错误,因为转换其他列的工作正常。

基本上我有一个SELECT语句可以播放int / string / float。以下代码仅在float上抛出上述错误,但在Database / ViewModel中,它们都是Float类型。

视图模型

public float personalAmount { get; set; }

REPOSITORY

     string selectQuery = "SELECT OC.[id], OC.[number_id], ONU.[mobile_number], OC.[personal_amount], OC.[start_date], OC.[end_date] " +
                                "FROM export OC " +
                                    "INNER JOIN numbers ONU ON OC.number_id = ONU.number_id " +
                                "WHERE OC.[person_id] = " + id;
        SqlCommand myCommand = new SqlCommand(selectQuery);
        myCommand.Connection = myConnection;
        myConnection.Open();

        SqlDataReader dataReader = myCommand.ExecuteReader();
        if (!dataReader.HasRows) return null;

        var newData = new List<List>();
        while (dataReader.Read())
        {
            List list = new List();
            list.id = (int)dataReader["id"];
            list.mobileNumber = dataReader["mobile_number"].ToString();
            list.personalAmount = (float) dataReader["personal_amount"];
            list.startDate = (DateTime)dataReader["start_date"];
            list.endDate = (DateTime)dataReader["end_date"];

            newData.Add(list);
        }
        dataReader.Close();

提前感谢您的帮助: - )

克莱尔

1 个答案:

答案 0 :(得分:3)

您是否尝试过Float.Parse(dataReader [“personal_amount”]。ToString())?

这不是一种很酷的解决方法,但它可能有用。