中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何創建CLR對象

發布時間:2021-12-03 14:52:40 來源:億速云 閱讀:225 作者:小新 欄目:編程語言

這篇文章主要介紹了如何創建CLR對象,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

一 創建CLR對象

1.在解決方案中添加新的C#SQL數據庫項目,命名為“ServiceClient”
2.為你的目標數據庫選擇或添加注釋。(如果未被提示:右擊ServiceClient項目,選擇屬性,數據庫,瀏覽并選擇你的連接)
3.為創建的服務添加聲明
1)在解決方案瀏覽器中右擊“service”項目,選擇“調試”>“Start New Instance”
2)服務運行:右擊“ServiceClient”項目,選擇“Add Service Reference”
3)在“Service URI”中輸入:http://localhost:8000/services
4)點擊“OK”

二 CLR觸發器案例

[Microsoft.SqlServer.Server.SqlTrigger(Name="Trigger1",Target="ERP_STOCKYaoHuoDingDan",Event="FORINSERT")]  publicstaticvoidDingDanIDSameGongYingShangGUIDMustSame()  {  using(SqlConnectionconnection=newSqlConnection(@"contextconnection=true"))  {  connection.Open();  SqlCommandcommand=newSqlCommand(@"SELECTCOUNT(A.DingDanID)FROMERP_STOCKYaoHuoDingDanASA,INSERTEDASBWHEREA.DingDanID=B.DingDanIDANDA.GongYingShangGUID<>B.GongYingShangGUID",connection);  inti=(int)command.ExecuteScalar();  if(i>0)  {  try  {  //如果要插入的記錄不合法,則回滾.  TransactionTransactiontrans=Transaction.Current;  trans.Rollback();  }  catch(SqlExceptionex)  {

當在觸發器內部調用Transaction.Rollback方法時,將引發異常并顯示不明確的錯誤消息,必須在try/catch塊中包裝此方法或命令。您會看到如下錯誤消息:

Msg6549,Level16,State1,Proceduretrig_InsertValidator,Line0A.NETFrameworkerroroccurredduringexecutionofuserdefinedroutineoraggregate  'trig_InsertValidator':System.Data.SqlClient.SqlException:Transactionisnotallowedtorollbackinsideauserdefinedroutine,  triggeroraggregatebecausethetransactionisnotstartedinthatCLRlevel.Changeapplicationlogictoenforcestricttransactionnesting…Usertransaction,ifany,willberolledback.  此異常是預期行為,需要try/catch塊才能繼續執行代碼。當完成執行觸發器代碼時,將引發另一個異常。  Msg3991,Level16,State1,Proceduretrig_InsertValidator,Line1Thecontexttransactionwhichwasactivebeforeenteringuserdefinedroutine,  triggeroraggregate"trig_InsertValidator"hasbeenendedinsideofit,whichisnotallowed.Changeapplicationlogictoenforcestricttransactionnesting.  Thestatementhasbeenterminated.此異常也是預期行為。  }  }  connection.Close();  }  }

調用CLR觸發器的例子

盡管引發了兩個異常,仍可以回滾事務,并且更改不會提交到表中。

try  {  //用到此觸發器的方法  }  catch(SqlExceptionex)  {  if(ex.Number==3991)  {  LabelInfor.Text="同一張訂單必須是同一家供應商。";  }  }  catch(Exceptionex)  {  }

感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何創建CLR對象”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

clr
AI

鄂尔多斯市| 石景山区| 保靖县| 个旧市| 罗甸县| 晋宁县| 田东县| 根河市| 阿瓦提县| 修武县| 阿拉善左旗| 贡觉县| 临海市| 新野县| 华坪县| 宁河县| 巩义市| 渝北区| 凤冈县| 三都| 吴忠市| 平和县| 东至县| 平舆县| 汶川县| 十堰市| 定南县| 容城县| 泾阳县| 怀来县| 白河县| 桂林市| 南平市| 沾化县| 织金县| 乌拉特中旗| 平谷区| 金寨县| 稷山县| 卫辉市| 北海市|