最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在SQL Server中使用CLR調(diào)用.NET方法實現(xiàn)思路

 更新時間:2013年02月27日 09:29:33   作者:  
在.NET中新建一個類,并在這個類里新建一個方法,然后在SQL Server中調(diào)用這個方法,接下來我們將實現(xiàn)這個功能做了以下幾個步驟,詳細(xì)看下本文,感興趣的你可不要錯過了哈
介紹
我們一起來做個示例,在.NET中新建一個類,并在這個類里新建一個方法,然后在SQL Server中調(diào)用這個方法。按照微軟所述,通過宿主 Microsoft .NET Framework 2.0 公共語言運行庫 (CLR),SQL Server 2005顯著地增強了數(shù)據(jù)庫編程模型。 這使得開發(fā)人員可以用任何CLR語言(如C#、VB.NET或C++等)來寫存儲過程、觸發(fā)器和用戶自定義函數(shù)。

我們?nèi)绾螌崿F(xiàn)這些功能呢?
為了使用CLR,我們需要做如下幾步:
1、在.NET中新建一個類,并在這個類里新建一個public方法。
2、編譯這個類為一個DLL。
3、在SQL Server中注冊這個DLL。
4、新建一個SQL Server函數(shù)來訪問指定的.NET方法。

接下來,我們一起來完成一個示例
首先,在Visual Studio中新建一個名為“SQLServerCLRTest”的類庫項目。 然后,新建一個名為“CLRFunctions”的類,并在其內(nèi)添加一個名為“HelloWold”的方法,代碼如下:
復(fù)制代碼 代碼如下:

public class CLRFunctions
{
public static string HelloWorld(string Name)
{
return ("Hello " + Name);
}
}

這是一個非常簡單的方法(為了讓SQL Server可以調(diào)用它,它必須要是public和static的),這個方法有一個string類型的參數(shù),返回信息為“Hello”加上你傳入的參數(shù)。

現(xiàn)在,我們需要編譯這個項目為一個DLL,并在SQL Server中注冊它。 這也是比較簡單的,在VS中右鍵單擊項目,選擇“生成”后程序就會生成一個DLL。 如果你的項目是調(diào)試模式的話,那么就可以在如下所示那樣的路徑里找到編譯好的DLL。
復(fù)制代碼 代碼如下:

C:\Documents and Settings\mark.smith\My Documents\Visual Studio 2005\Projects\SQLServerCLRTest\SQLServerCLRTest\bin\Debug\SQLServerCLRTest.dll

找到這個DLL后,我們就可以把它拷貝到我們的SQL Server機器上了,如果是相同機器的話我們只要記住這個路徑即可。

啟用CLR功能
默認(rèn)情況下,SQL Server中的CLR是關(guān)閉的,所以我們需要執(zhí)行如下命令打開CLR:
復(fù)制代碼 代碼如下:

exec sp_configure 'clr enabled',1
reconfigure
go

注冊DLL
為了調(diào)用我們寫的那個方法,需要在SQL Server中注冊我們剛剛編譯好的那個DLL。 我們可以在數(shù)據(jù)庫中使用如下命令來注冊DLL(路徑為你的DLL文件的路徑)
復(fù)制代碼 代碼如下:

CREATE ASSEMBLY asmHelloWorld FROM 'C:\SQLServerCLRTest.dll'

在SQL Server中調(diào)用我們的.NET方法
為了調(diào)用.NET方法,我們可以寫一個SQL Server自定義函數(shù),并在其內(nèi)使用“EXTERNAL NAME”來通知SQL Server使用CLR功能。 代碼如下:
復(fù)制代碼 代碼如下:

CREATE FUNCTION dbo.clrHelloWorld
(
@name as nvarchar(200)
)
RETURNS nvarchar(200)
AS EXTERNAL NAME asmHelloWorld.[SQLServerCLRTest.CLRFunctions].HelloWorld

上面的自定義函數(shù)做了兩項工作。 首先是聲明了一個nvarchar參數(shù),它等同于.NET里的string類型(如果將其設(shè)置為varchar并且后面使用了“EXTERNAL NAME”的話就會報錯)。然后使用“EXTERNAL NAME”來調(diào)用.NET方法。 語法如下:
程序集名.類名.方法名
但是,當(dāng)我使用這個語法調(diào)用.NET方法的時候,SQL Server就會報錯,所以為了讓它正常工作,我使用了如下語法:
程序集名.[類名].方法名
現(xiàn)在我們就可以通過如下語句調(diào)用.NET方法了:
復(fù)制代碼 代碼如下:

SELECT dbo.clrHelloWorld('Mark')

當(dāng)你運行這段代碼的時候,就會得到一個返回結(jié)果“Hello Mark”。
我們通過一個很簡單的示例演示了如何實現(xiàn)SQL Server的CLR,它可以給我們帶來很多非常有用的幫助。

相關(guān)文章

  • asp.net實現(xiàn)利用反射,泛型,靜態(tài)方法快速獲取表單值到Model的方法

    asp.net實現(xiàn)利用反射,泛型,靜態(tài)方法快速獲取表單值到Model的方法

    這篇文章主要介紹了asp.net實現(xiàn)利用反射,泛型,靜態(tài)方法快速獲取表單值到Model的方法,結(jié)合實例形式分析了asp.net中反射,泛型,靜態(tài)方法給model賦值的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • .NET添加時間戳防止重放攻擊

    .NET添加時間戳防止重放攻擊

    這篇文章主要介紹了.NET添加時間戳防止重放攻擊的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • 利用ASP.NET MVC+Bootstrap搭建個人博客之修復(fù)UEditor編輯時Bug(四)

    利用ASP.NET MVC+Bootstrap搭建個人博客之修復(fù)UEditor編輯時Bug(四)

    這篇文章主要介紹了利用ASP.NET MVC+Bootstrap搭建個人博客之修復(fù)UEditor編輯時Bug(四)的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • .NET中如何使用依賴注入DI

    .NET中如何使用依賴注入DI

    依賴注入簡稱DI,是一種軟件設(shè)計模式,其核心思想是將對象依賴關(guān)系的管理交由外部容器負(fù)責(zé),而不是由對象自身管理,下面我們就來看看.NET中如何使用依賴注入DI吧
    2024-12-12
  • 如何在ASP.Net Core中使用 IHostedService的方法

    如何在ASP.Net Core中使用 IHostedService的方法

    這篇文章主要介紹了如何在ASP.Net Core中使用 IHostedService的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • asp.net Google的translate工具翻譯 API

    asp.net Google的translate工具翻譯 API

    很久前的一天,我想使用這個東西,然后看了下,GooGle的Translate工具目前沒有公開API,還是一個逐漸完善的過程,另一方面,利用一段很小的程序就可以得到我們想要的效果。
    2008-12-12
  • ASP.NET MVC4異步聊天室的示例代碼

    ASP.NET MVC4異步聊天室的示例代碼

    這篇文章主要介紹了ASP.NET MVC4異步聊天室的示例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • aspx中的mysql操作類sqldatasource使用示例分享

    aspx中的mysql操作類sqldatasource使用示例分享

    服務(wù)器裝了mysql odbc驅(qū)動,想在那個iis上操作另一個服務(wù)器的mysql,找到個.net的sqldatasource類可以操作mysql,下在把使用方法分享一下
    2014-01-01
  • 為WPF框架Prism注冊Nlog日志服務(wù)

    為WPF框架Prism注冊Nlog日志服務(wù)

    這篇文章介紹了為WPF框架Prism注冊Nlog日志服務(wù)的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02
  • asp.net 每天定點執(zhí)行任務(wù)

    asp.net 每天定點執(zhí)行任務(wù)

    下面是每天零點執(zhí)行一個存儲過程
    2009-05-05

最新評論

沂水县| 九江县| 东安县| 巴南区| 达州市| 苏州市| 嘉义市| 茌平县| 互助| 岳阳市| 阿城市| 南投县| 高州市| 青田县| 墨玉县| 崇明县| 奉节县| 弥勒县| 梅河口市| 蓬溪县| 水城县| 固阳县| 无为县| 庆阳市| 上杭县| 都匀市| 独山县| 米易县| 金昌市| 绍兴县| 衡山县| 景德镇市| 都匀市| 南宁市| 安义县| 禹城市| 贵港市| 聊城市| 西乌珠穆沁旗| 鄂伦春自治旗| 葫芦岛市|