2013-02-01 34 views
1

我有一個有趣的問題。我想執行此查詢,但是發生此錯誤:錯誤「指定的轉換無效」在查詢

「指定的轉換無效」。

任何身體能幫助我嗎?

這裏是我的代碼:

string connStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; 
     SqlConnection sqlconn = new SqlConnection(connStr); 
     SqlCommand sqlcmd = new SqlCommand(); 
     sqlcmd = new SqlCommand("SELECT max(ID) FROM AddNews ", sqlconn); 

     sqlconn.Open(); 
     int ID = ((int)sqlcmd.ExecuteScalar()); 
     sqlconn.Close(); 
+0

檢查的返回類型 「sqlcmd.ExecuteScalar());」 – Arpit

+1

這完全是一個整數! – Reza

回答

1

有一種情況下,你可能不會有結果和回報可以爲空。

你最好嘗試

int? MaxID = sqlcmd.ExecuteScalar() as int?; 

,並檢查MaxID不爲空。

1

結果在SQL級別轉換爲int。返回的值將是一個int,如果爲null,則默認爲0。

可以使用Convert.ToInt32(sqlCmd.ExecuteScalar())代替(INT)或(int?)sqlCmd.ExecuteScalar() ?? 0;

0

代替((int)value)使用Convert.ToInt32(value)。它會工作。

0
sqlcmd.ExecuteScalar()); 

它返回的對象不是int。

試試這個

Object s= cmd.ExecuteScalar() 
int x=Integer.Parse(s.ToString)) 
0

您可以測試,如果你的價值是一個int第一

int ID; 
int.TryParse(sqlcmd.ExecuteScalar(), out ID); 
1
you have to change as follow 


int ID=int.Parse(cmd.ExecuteScalar().ToString()); 
相關問題