2012-07-17 6 views
1

왜 다른 열을 변환 할 때이 오류가 발생하는지 확신 할 수 없습니다.지정한 캐스트가 유효하지 않습니다 - float

기본적으로 int/string/float를 재생하는 SELECT 문이 있습니다. 다음 코드는 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(); 

감사가

클레어

답변

3

는 "당신이 Float.Parse (DataReader를의 [일을 시도 되세요 personal_amount "]. ToString())?

멋진 해결 방법은 아니지만 효과가있을 수 있습니다.

+0

감사합니다. – ClareBear

관련 문제