【发布时间】:2012-11-14 22:03:50
【问题描述】:
我有一个 SQL Server 2005 存储过程,其签名如下:
CREATE PROCEDURE [dbo].[ProcTRequest]
@Pxml xml, @ClientCode varchar(10)
AS
BEGIN
...
END
我的任务是编写一个.asmx Web 服务来调用这个存储过程。这是我遇到障碍的地方。
如果参数@Pxml在C# web方法中指定为字符串,我们得到
服务器无法处理请求。
然后尝试XmlText作为@Pxml的类型,结果是
服务器无法处理请求。方法 MyWebService.MyWebMethod 无法反映。有一个错误 反映“PXml”。 ->;反映类型有错误 'System.Xml.XmlText'。 -> System.Xml.XmlText 不能用作:'xml 元素'。
从 C# Web 方法调用此存储过程的正确方法是什么?请注意,@Pxml 参数将始终是格式良好的 XML。
将调用此 Web 服务的人正在 Unix 系统上使用 Curl。
虽然要求是一个 ASMX,但如果这可以通过 WCF 实现,你能告诉我一段伪代码是如何实现的吗?我还不熟悉 WCF。
请帮忙。谢谢你。
更新:这就是我对 SP 的称呼
[WebMethod]
public string GetRequestID(string PXml, string clientcode)
{
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader dr = db.ExecuteReader("ProcRequestID", PXml, clientcode))
{
return dr["RequestID"].ToString();
}
}
【问题讨论】:
标签: c# wcf sql-server-2005 stored-procedures asmx