我是使用C#編寫SQL存儲過程的菜鳥。徘徊有沒有什麼辦法可以創建一個通用的方法,在同一個腳本中的存儲過程中調用?C#sql存儲過程
回答
您可以創建在存儲過程中UDF,其基於發送到存儲過程的參數:
I.E. (在你的SP)
DECLARE @var1 int
IF @param1 = 1 THEN
SELECT @var1 = dbo.fn_MyUDF(@params)
END IF
這裏是一個頁面入門using Sql Server stored procs for the CLR。
這裏是一個Hello World example讓你開始。
這個想法是,你使用更高級別的面嚮對象語言編寫複雜的邏輯,然後只需從Sql Server中存儲的特效進行簡單調用,即可在CLR中執行該邏輯。
CLR過程就像任何其他存儲過程一樣,功能也一樣。一旦部署在數據庫中,它們可以被腳本和查詢訪問。假設你在一個類中創建一個C#方法:
class Foo
{
public static void Bar()
{
// Awesome code goes here
}
}
你可以編譯這個類爲一個程序集DLL,說MyClasses.DLL,那麼aseembly加載到使用CREATE ASSEMBLY MyClasses FROM
數據庫,與CREATE PROCEDURE Bar EXTERNAL MyClasses.Foo.Bar
申報程序。那麼您的腳本可以簡單地使用EXEC Bar;
來調用該過程。
Visual Studio可以簡化整個過程,SQL Server項目類型可以部署程序集並聲明包含的過程/函數/數據類型。
一旦你開始到Digg的,喜歡像你的C#代碼等等等等
要開始SqlProcedureAttribute或SqlFunctionAttribute正確使用屬性還有更多的細節,我推薦一些MSDN文章像Using CLR Integration in SQL Server 2005,Common Language Runtime (CLR) Integration Programming Concepts和看看Usage Scenarios and Examples for Common Language Runtime (CLR) Integration中的樣品。
- 1. SQL存儲過程
- 2. 存儲過程/ SQL
- 3. SQL存儲過程
- 4. SQL存儲過程
- 5. SQL存儲過程
- 6. SQL存儲過程
- 7. C#&SQL Server:執行存儲過程
- 8. C#DataTable到SQL Server存儲過程
- 9. SQL Bulk存儲過程調用C#
- 10. C#和SQL Server - 使用存儲過程
- 11. SQL Server存儲過程 - C#PK - FK
- 12. 在C#中部署SQL存儲過程
- 13. C#SQL存儲過程 - 返回ID
- 14. c#gridview不填充存儲過程sql
- 15. C#存儲過程
- 16. SQL Server:存儲過程存儲錯誤
- 17. 存儲過程SQL Server
- 18. Sql server存儲過程
- 19. SQL Server存儲過程sp_executesql
- 20. INSERT存儲過程(PL/SQL)
- 21. sql server 2000存儲過程
- 22. T-SQL存儲過程
- 23. SQL存儲過程編輯
- 24. SQL:在SELECT(存儲過程)
- 25. SQL存儲過程解析
- 26. oracle sql存儲過程
- 27. EntityFramework VS SQL存儲過程
- 28. SQL Server 2005存儲過程
- 29. PL/SQL存儲過程
- 30. 創建存儲過程 - SQL
什麼是你的Sql服務器(MySQL,Microsoft Sql Server,Oracle等)?你是在談論從SQL語句調用C#方法嗎?如果沒有極端的黑客行爲,這是不可能的 – Earlz 2009-11-13 19:21:38
Sql Server 2005+實際上允許隨時訪問.Net CLR並調用外部代碼非常簡單。 – 2009-11-13 19:22:53
哦..嗯..沒關係我然後哈哈 – Earlz 2009-11-13 19:23:34