2011-07-12 67 views
1

我打電話一GetSerialNo功能,但它顯示像一些錯誤:不能將類型'decimal'隱式轉換爲'int'。一個顯式轉換存在(是否缺少強制轉換?)

無法隱式轉換類型「小數」到「廉政」。存在明確的轉換(您是否缺少演員?)。

任何人都可以幫我解決這個問題嗎?

下面是代碼:提前

int slNo= GetSerailNo(keydata); 

private int GetSerailNo(String keydata) 
{ 

    SqlConnection con = new SqlConnection(@"server=Servername;database=DBNAME;uid=Username;pwd=Pwd;max pool size=250;Connect Timeout=0"); 
    con.Open(); 
    cmd = new SqlCommand("select isnull(max(slno)+1,1) from d001docs where source_keydata='" + keydata + "'", con); 
    dynamic no = cmd.ExecuteScalar(); 
    cmd.Dispose(); 
    con.Close(); 
    return no; 
} 

感謝

+1

爲什麼不復制並粘貼錯誤信息?人們,只需使用複製+粘貼! –

+2

你爲什麼使用'dynamic'? – Steven

回答

6
cmd.ExecuteScalar() 

返回一個小數,你需要轉換你回到它之前爲int ,例如:

return Convert.ToInt32(no); 
+0

IMO從很長時間'ExecuteScalar'返回'對象' – V4Vendetta

+0

該方法的返回類型是對象。然而,在這種情況下,運行時結果的實際類型是小數。 – Rik

+0

事實上,他在那個地方使用了動態 – V4Vendetta

相關問題