【发布时间】:2012-02-02 11:22:26
【问题描述】:
我在 SQL Server 2005 中有一个列的数据类型为 xml 的表。我创建了一个存储过程来将值插入该列。
但是当从 C# 中的代码调用 SP 时,它给了我一个错误
无法将参数值从 XDocument 转换为字符串。
有人可以帮忙吗?
这是我创建的存储过程:
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 或数据示例,请在文本编辑器中突出显示这些行,然后单击编辑器上的“代码示例”按钮 (
{ })工具栏以很好地格式化和语法突出显示它! -
您在 C# 代码中的哪个位置提供参数值?我不这么认为。基本上 - SQL Server 的 XML 类型是一个美化的字符串 - 它不能直接处理
XDocument- 您必须将XDocument“序列化”为字符串以将其传递给 SQL Server(例如使用 @987654327 @方法) -
谢谢@marc_s:我会在发布任何新问题时牢记您的建议。也感谢它制定的解决方案。
标签: c# xml sql-server-2005