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

本文关键字:数据 出错 XML 插入 存储过程 | 更新日期: 2023-09-27 18:22:08

在SQLServer2005中,我有一个表的列数据类型为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);

请帮我找出我做错了什么。

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

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

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