C# web服务C中缺少参数#

C# web服务C中缺少参数#,c#,asp.net,sql-server,web-services,wcf,C#,Asp.net,Sql Server,Web Services,Wcf,我正在用C#创建一个web服务: web服务的存储过程是 CREATE proc updcsuv (@id int, @upddate datetime, @username varchar(30)) as begin update csuv set date =

我正在用C#创建一个web服务:

web服务的存储过程是

CREATE proc updcsuv             
    (@id int,              
     @upddate datetime,              
     @username varchar(30))              
as              
begin            
    update csuv              
    set date = @upddate,              
        UserName = @username,
    where 
        id = @id              
end 
我的web服务中出现了错误,我不明白为什么会发生错误,因为我认为我的web服务是正确的,并且我正确地传递了所有参数

这就是错误所在

System.InvalidOperationException:缺少参数:upddate。
位于System.Web.Services.Protocols.ValueCollectionParameterReader.Read(NameValueCollection集合)
在System.Web.Services.Protocols.HtmlFormParameterReader.Read(HttpRequest请求)
位于System.Web.Services.Protocols.HttpServerProtocol.ReadParameters()
在System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()中


正如您所说,您的问题行是
newsqlparameter(“@upddate”,upddate)。
因此在查询参数中指定
upddate
datetime
类型。但你是在给它施加压力。所以这可能会产生问题,而且我假设您的字符串是空的,您忘记添加您在此之前创建的
DateTime

if (upddate.ToString() == "")
{
    dt = Convert.ToDateTime("01-01-1900", enGB);
}
else
{
    dt = Convert.ToDateTime(date, enGB);
}

//when you go to the params, set dt for upddate instead of your string.
SqlParameter[] param =
{
    new SqlParameter("@id",id),
    new SqlParameter("@upddate",dt),
    ....
}
编辑

如果您想要更新日期,您应该这样写:

if (upddate.ToString() == "")
{
    dt = DateTime.Now;-> this will return you current date, which will be the update date !
}

您在哪一行收到此异常?
upddate
新的SqlParameter(“@upddate”,upddate),
line@mybirthname...Check我的答案并告诉我是否对您有帮助。但是当我将代码更改为此
//存储过程@date datetime时,设置date=@date,并将所有参数从upddate更改为date
它开始工作,但我想使用upddate
if (upddate.ToString() == "")
{
    dt = DateTime.Now;-> this will return you current date, which will be the update date !
}