2014-02-11 2 views
0
query = "SELECT MAX([Date]) FROM [Events]"; 
DataTable dt = execute(query); 
DateTime date; 

if (dt!= null && dt.Rows.Count != 0) 
{ 
    date = (DateTime) dt.Rows[0][0]; 
} 
else 
{ 
    date = DateTime.Now; 
} 

지금 테이블 이벤트가 비어있을 때 내 질문입니다, 그것은 심지어 null이 아닌 잘못된 값을 반환합니다 ... 어떻게 그것에 대한 일반 유효성 검사를 작성할 수 있습니까?테이블의 MAX 값을 확인하는 방법은 무엇입니까?

+1

DataTable이 필요한 특별한 이유가 있습니까? ExecuteScalar는보다 간단하고 효율적입니다. –

+0

테이블이 비어 있다면 query = "SELECT isnull (MAX ([Date], curdate()) FROM [Events]"; mysql을 가정하면 – Egalitarian

답변

2

값은 아마 DBNull.Value입니다 (SQL 서버 가정), 당신은 확인 수 있지만, 상자 밖으로, 당신은 쿼리를 적용 할 수 : SELECT isnull(MAX([Date]),getdate()) FROM [Events] 그런 식으로, 반환 값은 항상 유효한 날짜입니다 수표는 생략 할 수 있습니다.

+0

네, 고맙습니다) – user3279938

0
 SqlCommand cmd=new SqlCommand("SELECT MAX([Date]) FROM [Events]",ConnectionObject); 

int _value = cmd.ExecuteScalar();

동안 (_value = 0!)

{

가 // 무언가

_value--; }

관련 문제