2011-04-19 3 views
0

나는이 같은 SQL 쿼리를 가지고 :Subsonic을 사용하여 XML 필드에서 속성을 추출하는 방법은 무엇입니까?

SELECT  
    myXmlField.value('(./row/@myAttribute)[1]', 'nVarchar(max)') as myAttribute 
FROM myTABLE 
    Where myID = 640 

SQL 쿼리가 잘 작동하지만 지금은 어떻게 음속으로, 나는 MS SQL 서버에있는 XML 필드에서 속성을 추출 할 수 있습니다?

Visual Studio 2005, .net 2.0, C# 및 SubSonic 2.1을 사용하고 있습니다.

고마워요.

답변

0

음 ... XML 필드의 값을로드하여 해결했습니다. 아음속은 XmlDocument 개체에서 문자열로 반환합니다.

System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); 
doc.LoadXml(MyTable.myXmlField); //MyTable entitie created by subsonic. 
doc.SelectSingleNode("./row/@myAttribute").Value //Here I get the attribute from the XML field. 

다른 방법이 있습니까?

+0

내 대답보기 나는 당신이하고있는 일이 많은 방법으로 꽤 무섭다는 것을 덧붙이겠다. 하나의 값을 추출하기 위해 전체 dom 문서를 메모리에 작성합니다. XmlTextReader가 아닌 경우 아마 여기에서 정규식을 사용해야합니다. –

1

아음속 또는 다른 ORM보다 훨씬 뛰어납니다. XML 열에서 선택하는 것은 매우 데이터베이스 서버 관련 문제입니다.

최상의 방법은 해당 SQL을 실행하는 저장 프로 시저를 작성하고 아음속 전화를 호출하는 것입니다.

관련 문제