我有一個輸出參數的存儲過程。如何使用C#代碼讀取此值?如何運行C#中有OUTPUT參數的存儲過程?
回答
我假設你使用ADO.NET?如果是這樣,SqlParameter類具有屬性「方向」。將方向設置爲輸出,並在查詢執行後讀取該參數的值。
事情是這樣的:
using (SqlCommand cmd = new SqlCommand("MyStoredProcedure", cn))
{
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter parm = new SqlParameter("@pkid", SqlDbType.Int);
parm.Value = 1;
parm.Direction = ParameterDirection.Input;
cmd.Parameters.Add(parm);
SqlParameter parm2 = new SqlParameter("@ProductName", SqlDbType.VarChar);
parm2.Size = 50;
parm2.Direction = ParameterDirection.Output; // This is important!
cmd.Parameters.Add(parm2);
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
}
我有另一個問題,我需要確定輸出參數 是十進制(8,2)如何! – shmandor 2010-08-08 09:37:09
我不確定我是否理解這個問題。如果您要在輸出變量中返回一個小數,您應該將SqlDbType設置爲十進制。如果你實際上返回一個十進制數,你可以像這樣進行轉換:(十進制)cmd.Parameters [@「MyDecimal」] Value – Merrimack 2010-08-08 09:46:31
我強烈建議將'SqlConnection'和'SqlCommand'放入'using(.... ){...}'塊作爲最佳實踐 – 2010-08-08 09:50:49
- 1. SqlServer中的存儲過程OUTPUT參數
- 2. .NET CLR存儲過程OUTPUT參數
- 3. 使用Output參數執行存儲過程?
- 4. 如何通過C#中的存儲過程傳遞參數
- 5. 運行存儲過程帶有參數的查詢
- 6. 如何將XML參數添加到C#中的存儲過程?
- 7. 如何在c#中獲取存儲過程的參數名稱
- 8. 如何將具有參數的SQL Server存儲過程轉換爲具有參數的Oracle存儲過程?
- 9. 我可以在存儲過程中使用可選的OUTPUT參數嗎?
- 10. 執行與參數的存儲過程
- 11. 如何使用datetime參數調用存儲過程中的存儲過程
- 12. 存儲過程的參數 - 有時NULL
- 13. C#Oracle存儲過程參數順序
- 14. .net:如何在c#中使用可爲空的參數執行存儲過程?
- 15. 運行存儲過程
- 16. Netezza存儲過程運行
- 17. 如何在.NET中運行時確定SQL Server存儲過程參數?
- 18. 如何在執行存儲過程中使用變量參數?
- 19. 如何進行多輸出參數在存儲過程中
- 20. 用c輸出參數運行存儲的sql程序#
- 21. FreeTDS:如何設置運行存儲過程的參數字符集
- 22. MySQL存儲過程參數
- 23. 存儲過程在參數
- 24. 存儲過程NULL參數
- 25. DbNull.Value存儲過程參數?
- 26. 參數化存儲過程
- 27. 在存儲過程參數
- 28. 如何使用openrowset執行存儲過程的參數
- 29. 如何通過數據表中的SQL存儲過程有多個參數
- 30. 如何在使用CRUD的存儲過程時映射存儲過程參數?
請郵寄到現在爲止您編寫的代碼。 – 2010-08-08 09:02:22
我喜歡這個,因爲這是一個有用的問題,但由於缺乏「我試過這個」我不能這樣做。 – JYelton 2013-09-16 17:37:40