C#編寫dll進行sql server數據庫擴展儲存過程


一、編寫C#函數文件

1、新建一個類庫文件

  備注:sqlserver 2008只能用.net3.5版本。

2、如有想加入強命名的話可如下步驟:

 參考博文https://blog.csdn.net/donnie88888888/article/details/52743064

  1、運行在“開始菜單”-“程序”-“Microsoft Visual Studio 2008”-“Visual Studio Tools”-“Visual Studio 2008命令提示”(使用這一命令行工作才能能任意路徑下執行VS命令行工具);

  2、創建一個強名稱程序集密鑰文件文件

執行命令C:\sn -k keypair.snk

  3、為類庫綁定密鑰文件

      (1)a. 如果你有要引用的類庫的源代碼,可以在類庫項目中的AssemblyInfo.cs源文件中加入如下面的屬性:
                  [assembly:AssemblyKeyFile("C:\keypair.snk")]

      (如果有源代碼的情況下,也可以直接使用項目配置來使類庫項目直接生成並綁定密鑰對。配置如:右擊“類庫項目”->“屬性”->“簽名”選項卡->選擇“為程序集簽名”復選框->“選擇強名稱密鑰文件(K):”下拉框->“新建”或“瀏覽”選擇一個已存在的密鑰文件。)

b. 生成項目即可得到擁有強名稱的類型庫

      (2)如果你只有第三方的類庫(xxxxxx.dll)文件而沒有源碼項目的話,需要繼續做如下操作。

               a. 使用類庫文件獲取微軟中間語言(MSIL)源碼文件。

               C:\>ildasm xxxxxx.dll /out:xxxxxx.il

               b. 使用MSIL源碼文件(xxxxxx.il)和新生成的(keypair.snk)密鑰文件創建新的程序集類庫文件

                C:\>ilasm xxxxxx.il /dll /key=keypair.snk

二、數據庫引入dll文件

  備注:中間可能需要打開通道,百度很多方法。

create assembly api
from 'D:\Odoo\api\bin\Debug\api.dll'
with permission_set = UNSAFE 
go

三、創建函數

create FUNCTION [dbo].[test](
)
RETURNS [nvarchar]
WITH EXECUTE AS CALLER
AS 
EXTERNAL NAME [api].[api.Class1].[test]
GO

四、調用函數

print dbo.test()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM