2016-08-17 5 views
1

에서 변환 I 고유 식별자 문자열로 변환 할 때SqlDataReader 개체 오류, 문자

변환 실패 오류를 받고 있어요.

날짜가 변환되지 않았으므로 여기에서 꽤 분실했습니다.

나는 매개 변수화 된 쿼리를 사용하고 datarowview에서 오는 2 개의 값을 추가하고 있습니다. 내가 디버깅 및 날짜에 대한 값을 확인하는 경우이 경우에는 내가 {8/17/2016 9:08:44 PM}

string query = @"SELECT TOP 1 
        SensorValue, 
        ActivityDateTime, 
        (Select TimeAlert from Vehicle_config 
         where VehicleID = '@guid') as TimeAlert, 
        (Select DistanceAlert from Vehicle_config 
         where VehicleID = '@guid') as DistanceAlert, 
        (Select TimeInterval from Vehicle_config 
         where VehicleID = '@guid') as TimeInterval, 
        (Select DistanceInterval from Vehicle_config 
         where VehicleID = '@guid') as DistanceInterval, 
        (Select AlertFlag from Vehicle_config 
         where VehicleID = '@guid') as AlertFlag, 
        (Select Litros from Vehicle_config 
         where VehicleID = '@guid') as Litros 
       FROM 
        navman_Fuel_activity 
       WHERE 
        ActivityDateTime < DATEADD(MI, -5, @date) 
        AND VehicleId = '@guid' 
       ORDER BY ActivityDateTime DESC;"; 

using (SqlConnection sqlConn = new SqlConnection(connectionString)) 
using (SqlCommand cmd = new SqlCommand(query, sqlConn)) 
{ 
    cmd.Parameters.AddWithValue("date", (DateTime)row["ActivityDateTime"]); 
    cmd.Parameters.AddWithValue("guid",(Guid)row["VehicleID"]); 

    sqlConn.Open(); 

    using (var reader = cmd.ExecuteReader()) 
    { 
     if (reader.Read()) // here is where I get the error 
+2

문제는 여기에'cmd.Parameters.AddWithValue ("GUID"(GUID) 행 [ "VehicleID"])이며,' – techspider

+1

당신이 *** 유효한 *** GUID를 가지고 있는지 확인 'row [ "VehicleID"]'의 각 행에 – techspider

답변

1

나는 실패가

cmd.Parameters.AddWithValue("guid",(Guid)row["VehicleID"]); 

내가이 작업을 수행 할 필요가 있다고 생각이 라인에 무슨 일이 일어나고 생각이 형식으로 그것을 얻을 대신 캐스트의

cmd.Parameters.AddWithValue("guid",new Guid(row["VehicleID"]));