2012-02-02 4 views
1

SQL Server 2005에서 열의 데이터 형식이 xml 인 테이블이 있습니다. 해당 열에 값을 삽입하는 저장 프로 시저를 만들었습니다. 저장 프로 시저를 통해 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); 

입니다 :

이것은 내가 만든 저장 프로 시저입니다.

+0

을 통과 샘플 "버튼 ('{}')을 사용하여 멋지게 포맷하고 구문을 강조 표시하십시오! –

+3

어디 C# 코드에서 매개 변수에 대한 값을 제공하는 ?? 나는 그것을 보지 못한다. 기본적으로 - XML ​​형식의 SQL Server는 영광스러운 문자열입니다. 즉, 'XDocument'를 직접 처리 할 수 ​​없습니다. 'XDocument'를 문자열로 변환하여 SQL Server에 전달해야합니다 (예 : '. ToString()'method) –

+0

감사합니다. @marc_s : 새로운 질문을 게시하는 동안 귀하의 제안을 유념 할 것입니다. 또한 그것을 해결해 주셔서 감사합니다. –

답변

3

이 매개 변수를 전달할 때 XDocument 객체가 아니라 해당 문자열 표현을 전달합니다.

이 XmlDocument.OuterXml입니다을 XmlDocument를 들어

,하여 XDocument 하나를 발견하고 코드, XML 또는 데이터 샘플을 게시 할 경우, ** 텍스트 편집기에서 그 라인을 강조하고 "코드를 클릭하십시오

+0

@mark_s 죄송합니다. 답변을 작성했을 때 답글을 남겼습니다. 응답을 삭제할 것입니다. –

+0

걱정하지 마세요 .--) 나는 이것을 "진짜"대답 - 당신은 - 당신의 노력에 대한 크레딧을받을 자격이 있습니다! –

+0

@OlegDok 귀하의 측면에서 유용한 정보. 도와 주셔서 감사합니다. –

관련 문제