2014-02-25 64 views
0
string query = "SELECT COUNT(DISTINCT [PIN]) AS [pinCount] FROM [Users]"; 
DataTable dt = Execute(query); 

if (dt == null || dt.Rows.Count == 0 || dt.Rows[0][0] == DBNull.Value) 
    return false; 
else if ((int)dt.Rows[0]["pinCount"] > 0) 
    return true; 
return false; 

我在我的代碼中有這種查詢,並且在將計數轉換爲int時,它給了我一個例外,當castin的值必須小於無限時......我做錯了什麼?如何將此COUNT轉換爲INT?

+0

@GrantWinney OP說的例外是在那裏它被轉換爲'int'所以'否則行,如果((int)的dt.Rows [0] [ 「PINCOUNT」] > 0)'。 – Yuck

+0

嘗試使用'long'數據類型而不是'int'。 –

+0

@JWLim謝謝,它的工作 – user3279938

回答

1

試試這個代碼

if (dt != null) 
{ 
    if (dt.Rows.Count > 0) 
    { 
     object tVal = dt.Rows[0][0]; 
     if (!Convert.IsDBNull(tVal)) 
      return (Convert.ToInt32(tVal) > 0); 
    } 
} 
return false; 
+1

改變int長期以來幫助,但非常感謝)) – user3279938