1

他の列の変換が正常に機能したため、このエラーを受け取った理由がわかりません。

基本的に、int/string/float を再生する SELECT ステートメントがあります。次のコードは float でのみ上記のエラーをスローしますが、Database/ViewModel 内では両方とも Float 型です。

ビューモデル

public float personalAmount { get; set; }

リポジトリ

     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();

助けてくれてありがとう:-)

クレア

4

1 に答える 1

3

Float.Parse(dataReader["personal_amount"].ToString()) を試してみましたか?

クールな解決方法ではありませんが、うまくいくかもしれません。

于 2012-07-17T09:30:23.277 に答える