【问题标题】:Don't want to pass all parameters不想传递所有参数
【发布时间】:2018-03-13 18:40:50
【问题描述】:

这是我的存储过程:

ALTER Procedure [dbo].[insertDetails] 
(
    @eno int, 
    @name varchar(max), 
    @address varchar(max)=null, 
    @phone varchar(max)=null, 
    @mailid varchar(max)=null 
)
as 
begin
    insert into para5 values(@eno, @name, @address, @phone, @mailid)
end 

下面是我的代码:

private void Insert()
{
    TestEntities te = new TestEntities();
    var obj = te.insertDetails(1, "");
}

这里我不想传递所有参数。

【问题讨论】:

  • 什么是TestEntities.insertDetails?它是如何实施的?由于 SP 上的其他参数是可选的,因此您确实不必全部传递它们,但是没有看到您的 insertDetails 方法,我们看不到您在做什么
  • TestEntities-> 这是实体,insertDetails->这是存储过程名称
  • @ReddyP 那......真的没有回答这个问题。如果您在insertDetails 上按 F12(“转到定义”),它会显示什么?

标签: c#


【解决方案1】:

您的存储过程需要至少两个参数(@eno 和 @name)。

您应该发送它们。

相反,您可以为不想发送的参数指定一个默认值,例如:

ALTER Procedure [dbo].[insertDetails]
(
    @eno int,
    @name varchar(max) = 'NEW USER',
    @address varchar(max)=null,
    @phone varchar(max)=null,
    @mailid varchar(max)=null
)
as
begin
insert into para5 values(@eno, @name, @address, @phone, @mailid)
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-28
    • 2013-07-31
    • 2020-05-24
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    相关资源
    最近更新 更多