2012-07-09 79 views
0

我得到一個指定的強制轉換無效的錯誤,當我執行一個存儲過程是這樣的:ADO.NET:指定的轉換是無效

return (int)comm.ExecuteScalar(); 

當我在SQL Server則返回1執行它,所以我知道我的proc正在工作。

我的演員有什麼問題?

更新時間:

public static int IsPresent(string userName, int inTime) 
    { 
     SqlConnection connObj = new SqlConnection(); 
     connObj.ConnectionString = Util.SQLConct(); 
     connObj.Open(); 

     SqlCommand comm = new SqlCommand("usp_IsUserLocked", connObj); 

     comm.CommandType = CommandType.StoredProcedure; 

     comm.Parameters.Add(new SqlParameter("@Username", userName)); 
     comm.Parameters.Add(new SqlParameter("@InTime", inTime)); 

     return (int)comm.ExecuteScalar(); 

    } 

在此先感謝

+0

你試過'Convert.ToInt32()'? – 2012-07-09 20:30:23

+1

你可以發佈命令文本嗎? – 2012-07-09 20:31:25

+0

使用調試器檢查類型。 SP真的會返回一個值還是僅僅是rowcount? – 2012-07-09 20:31:57

回答

5

這可能是你的方法返回雙或Int64的或不能隱澆鑄(int)的任何其他類型。使用Convert.ToInt32確保您的方法返回正確的類型。

using System; 

... 
return Convert.ToInt32(comm.ExecuteScalar()); 
+0

我收到一個錯誤:名稱'Convert'在當前上下文中不存在 – user793468 2012-07-09 20:37:28

+0

user793468:確保包含System名稱空間 – alexm 2012-07-09 20:46:03

相關問題