C# web服务C中缺少参数#
我正在用C#创建一个web服务: web服务的存储过程是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 =
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 !
}