2013-07-14 3 views
0

에서 NULL을 읽을 수 SqlCommand만들기 MaskedTextBox에 나는 내가 (이 코드의 일부가 아닌) 다음 MaskedTextBox에 및에 데이터를 읽기 위해 사용이 짧은 코드가 SqlDataReader 개체

SqlCommand novyprikaz = new SqlCommand("SELECT * FROM zajezd WHERE akce=" + tentoradek, spojeni); 
      spojeni.Open(); 
      SqlDataReader precti = novyprikaz.ExecuteReader(); 

      if (precti.Read()) 
      {maskedTextBox2.Text = precti.GetDateTime(24).ToShortDateString(); // i need to improve this part 
} 

를 통해 그들을 업데이트 할 수 있지만 maskedTextBox2 알고

나는이 코드를 변경해야하는지

Data is Null. This method or property cannot be called on Null values.

내가 당신을 묻고 싶다, 그것은 널을 읽을 수 있도록 : 값은 나에게 있다는 오류를 제공 NULL입니까? 미리 감사드립니다.

여기는 내가 전에 사용했던 코드 조각 INSERT INTO입니다. 답변으로 표시되어 있습니다.

답변

1

확인 SqlDataReader 개체가 열 (24)에 IsDBNull method를 사용하여 DBNull이 값을 포함하고 빈 문자열이나 응답에 대한

if (precti.Read()) 
{ 

     maskedTextBox2.Text = precti.IsDBNull(24) ? 
          string.Empty : 
          precti.GetDateTime(24).ToShortDateString(); 
} 
+0

덕분에 너무 많은 null이 아닌 값을 반환 적절하게 행동하지만 날이 오류를 준 경우 : 데이터가없는 경우 읽기 시도가 잘못되었습니다. – Marek

+0

Read 메서드가 true를 반환하면 첫 번째 행에서 독자가 고급 상태가되어 레코드가 존재하기 때문에 이상합니다. 그런 다음 IsDBNull은 열에 값이 없는지 확인하고 코드가 false를 반환 할 때만 코드가 열을 읽으려고 시도합니다. 24 이러한 동작이 예상되는 동작을 변경하기 전에 다른 코드를 사용 했습니까? – Steve