如何使用SQL Server声明可空的guid作为C#CLR存储过程的可选参数
我正在编写一个部署在SQL Server 2008 R2(所以.Net 3.5)上的C#存储过程,并且想声明一个可选参数作为可空的guid.这是我先试过的
[Microsoft.SqlServer.Server.SqlProcedure] public static void spCalcPerc( SqlGuid pID,SqlGuid sID = DBNull.Value ) 这与编译时错误失败:
这是因为DBNull.Value不是一个常数,这是一个痛苦. 所以我尝试将声明更改为: [Microsoft.SqlServer.Server.SqlProcedure] public static void spCalcPerc( SqlGuid pID,Guid? sID = null ) 这个编译,但现在我得到这个部署错误:
试: ,SqlGuid sID = null 给这个编译时错误:
所以感觉比较卡住我诉诸于此: ,SqlGuid sID = "00000000-0000-0000-0000-000000000000" 我不想做代码中的字符串测试,就像一个kludge.但是,我不会收到这个编译错误:
Gah,4种不同的方法,没有一种工作.叹 请感谢您的想法或推动正确的方向. 解决方法尝试,SqlGuid sID = New Guid() 您可以使用 if (sID == Guid.Empty) 检查是否尚未分配值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |