2010-06-30 3 views
1

webservice 용 일부 XML을 동적으로 작성하려고합니다. 나는 최근에 내 SQL 쿼리에 FOR XML AUTO 절을 사용하는 방법을 보여 주었지만 잘 모르겠습니다. 쿼리를 올바르게 작성하고 문서의 값을 반환하는 방법을 잘 모르는 경우반환 값 자동 모드 XML

using (SqlConnection oCn = new SqlConnection()) 
{ 
    oCn.ConnectionString = @"server=sql-server\cos;integrated security=SSPI;database=daas5"; 
    oCn.Open(); 

    // Create a SQL command object. 
    string strSQL = "SELECT * FROM dd615.musicdetails WHERE artistname LIKE '%" + 
         searchTerm + "%' OR recordname LIKE '%" + searchTerm + "%' 
         OR recordtype LIKE '%" + searchTerm + "%' 
         OR format LIKE '%" + searchTerm + "%' 
        FOR XML AUTO, ELEMENTS, ROOT('musicInformation') "; 

    SqlCommand myCommand = new SqlCommand(strSQL, oCn); 
}   

는 어떤 도움을 크게

+0

** 어떤 SQL Server 버전 **을 사용하고 있습니까? 너 뭐하니? 출력이 단지 "잘못"입니까, 아니면 오류가 있습니까 - 그렇다면 무엇입니까 (자세히 설명하십시오) ?? 결국 XML이 어떻게 보일 것인가를 보여줄 수 있습니까? –

+0

사이드 노트로서 : 당신은 이것이 끔찍한 일을 수행 할 것이라는 것을 확실히 알고 있습니다, 맞습니까? 'LIKE % something % '을 (를) 찾는 것은 모든 색인을 비활성화하는 완벽한 방법입니다. 그래서 150 % 보장 된 테이블 전체를 스캔 할 수 있습니다 ..... –

+0

사용중인 SQL 서버 버전은 2005입니다. 일단 XML을 출력하면 해결해야 할 일이 급한 일입니다. 그것이 작동하는지 또는 내가 지금 SQL 문에서 XML을 가져 와서 XDocument/XmlDocument에 넣는 방법을 잘 모르겠다. – dbomb101

답변

1

귀하의 SQL 보인다 미세 지금까지 감상 할 수있다 - 최선의 방법이 SqlCommand 개체의 .ExecuteXmlReader을 사용하는 것입니다.

XmlReader reader = myCommand.ExecuteXmlReader(); 

당신이 그것을 가졌을 때 당신은 쉽게 그래서 당신을 위해 작동 중 선택 XDocument

XDocument doc = XDocument.Load(rdr); 

또는 XmlDocument

XmlDocument xdoc = new XmlDocument(); 
xdoc.Load(rdr); 

이 점을로드 할 수 있습니다!