我有一個簡單的SQL Server存儲過程:初始化存儲過程的輸出參數
ALTER PROCEDURE GetRowCount
(
@count int=0 OUTPUT
)
AS
Select * from Emp where age>30;
SET @[email protected][email protected]@ROWCOUNT;
RETURN
我試圖初始化並在下面的C#代碼訪問的輸出參數:
SqlConnection con = new SqlConnection();
con.ConnectionString = "Data Source=localhost\\SQLEXPRESS;Initial Catalog=answers;Integrated Security=True";
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "GetRowCount";
cmd.Parameters.Add(new SqlParameter("@count", SqlDbType.Int));
cmd.Parameters["@count"].Direction = ParameterDirection.Output;
con.Open();
cmd.Parameters["@count"].Value=5;
cmd.ExecuteNonQuery();
int ans = (int)(cmd.Parameters["@count"].Value);
Console.WriteLine(ans);
但在運行代碼,第InvalidCastException
被引發到代碼的第二行(我調試並檢查沒有任何內容在Value屬性中返回)。
如何正確地初始化代碼中的輸出參數?提前致謝!
可能重複(http://stackoverflow.com/questions/12174399/accessing-sql-server-stored-procedure-output -in-c-sharp) – podiluska
我是一個小時前問過這個問題的人,但這是一個完全不同的問題 – ankit0311