我有一个 SQL Server 2005 存储过程,其签名如下:
CREATE PROCEDURE [dbo].[ProcTRequest]
@Pxml xml, @ClientCode varchar(10)
AS
BEGIN
...
END
我的任务是编写一个.asmx
将调用此存储过程的 Web 服务。这就是我遇到障碍的地方。
如果参数@Pxml
在 C# web 方法中指定为字符串,我们得到
服务器无法处理请求。
然后尝试XmlText
作为 for 的类型@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();
}
}