2014-02-11 23 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; 
} 

現在我的問題是什麼,當表事件是空的時候,它會返回一些無效的值,甚至不是空值......我如何爲它寫一個正常的驗證?如何驗證表格的MAX值?

+1

是否有您需要DataTable的特定原因? ExecuteScalar會更簡單/更高效。 –

+0

如果表是空的,那麼你可以使用類似query =「SELECT isnull(MAX([Date],curdate())FROM [Events]」;假設mysql – Egalitarian

回答

2

的值可能DBNull.Value,你可以檢查這一點,但開箱即用,你能適應的查詢(假設的SQL Server):SELECT isnull(MAX([Date]),getdate()) FROM [Events] 這樣,返回的值始終是有效的datetime並且可以省略檢查

+0

是的,非常感謝) – user3279938

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

int _value = cmd.ExecuteScalar();

而(_value!= 0)

{

//做點什麼

_value--; }