加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 将值传递给ObjectParameter变量

发布时间:2020-12-16 01:52:10 所属栏目:百科 来源:网络整理
导读:我用一些参数创建了一个存储过程.这些是我的程序的参数: ALTER Procedure [dbo].[SaveInvitation]( @InvitationID INT OUTPUT,@UserID INT,@Email NCHAR(100),@InvitationGUID UNIQUEIDENTIFIER OUTPUT)AS 我的function.cs: public SaveInvitation_Result
我用一些参数创建了一个存储过程.这些是我的程序的参数:

ALTER Procedure [dbo].[SaveInvitation]
(
    @InvitationID INT OUTPUT,@UserID INT,@Email NCHAR(100),@InvitationGUID  UNIQUEIDENTIFIER OUTPUT
)
AS

我的function.cs:

public SaveInvitation_Result SaveInvitation(int userID,string email)
{
        SaveInvitation_Result result = null;

        var results = this.DataContext.SaveInvitation(null,userID,email,null);

        if (results != null)
        {
            result = results.FirstOrDefault();
        }

        return result;
    }

我将一些参数传递给我的函数SaveInvitation,如下所示:

我的DataBaseModel.Designer.cs:

public ObjectResult<SaveInvitation_Result> SaveInvitation(ObjectParameter invitationID,Nullable<global::System.Int32> userID,global::System.String email,ObjectParameter invitationGUID)
{
        ObjectParameter userIDParameter;
        if (userID.HasValue)
        {
            userIDParameter = new ObjectParameter("UserID",userID);
        }
        else
        {
            userIDParameter = new ObjectParameter("UserID",typeof(global::System.Int32));
        }

        ObjectParameter emailParameter;
        if (email != null)
        {
            emailParameter = new ObjectParameter("Email",email);
        }
        else
        {
            emailParameter = new ObjectParameter("Email",typeof(global::System.String));
        }

        return base.ExecuteFunction<SaveInvitation_Result>("SaveInvitation",invitationID,userIDParameter,emailParameter,invitationGUID);
}

当我执行这个函数/过程时,我得到一个异常

The parameter at index 0 in the parameters array is null.

如何将值传递给invitationID和invitationGUID?

解决方法

当userID或email为null时,必须将参数的值设置为DBNull.Value:

public ObjectResult<SaveInvitation_Result> SaveInvitation(ObjectParameter invitationID,ObjectParameter invitationGUID)
{
    ObjectParameter userIDParameter;
    if (userID.HasValue)
    {
        userIDParameter = new ObjectParameter("UserID",userID);
    }
    else
    {
        userIDParameter = new ObjectParameter("UserID",typeof(global::System.Int32));
        userIDParameter.Value = DBNull.Value;
    }

    ObjectParameter emailParameter;
    if (email != null)
    {
        emailParameter = new ObjectParameter("Email",email);
    }
    else
    {
        emailParameter = new ObjectParameter("Email",typeof(global::System.String));
        emailParameter.Value = DBNull.Value;
    }

    return base.ExecuteFunction<SaveInvitation_Result>("SaveInvitation",invitationGUID);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读