通过存储过程插入XML数据时出错

时间:2012-02-02 11:22:27

标签: c# xml sql-server-2005

我在SQL Server 2005中有一个表的列数据类型为xml。我创建了一个存储过程来将值插入到该列中。

但是当从C#中的代码调用SP时,它给了我一个错误

  

无法将参数值从XDocument转换为String。

任何人都可以帮忙吗?

这是我创建的存储过程:

Create Procedure [dbo].[TestReportRepository_Save]
@ReportExecutionTime datetime,
@ReportFile xml,

as
begin

insert into TestReportRepository(ReportExecutionTime,ReportFile) values(@ReportExecutionTime,@ReportFile)

end

C#代码是

DbParameter dbParam1 = dac.Parameter("@ReportExecutionTime", ReportExecutionTime, DbType.DateTime, ParameterDirection.Input);
DbParameter dbParam2 = dac.Parameter("@ReportFile", xmlDoc.Document, DbType.Xml, ParameterDirection.Input);

DbParameter[] dbParamColl = new DbParameter[] { dbParam1, dbParam2 };
long reportID = dac.Save("TestReportRepository_save", dbParamColl);

请帮我辨别我做错了什么。

1 个答案:

答案 0 :(得分:3)

传递此参数时 - 不传递XDocument对象,而是传递其字符串表示。

对于XmlDocument,它是XmlDocument.OuterXml,为XDocument找到一个并传递它