2010-06-10 4 views
0

사용자가 클릭 한 탭에 따라 문서 목록을로드하는 인터페이스가 있습니다. Stringbuilder 대 SQL FOR XML/XSL 변환

내가 가진 SQL 2008 데이터베이스에서 XML을 통해 데이터를 검색했습니다 :
SELECT col1, col2 col3 FROM documents WHERE typeId = 4 FOR XML PATH('doc'), ROOT('documents') 

그런 다음 XSLT 스타일 시트와 XML을 tranforming. 그것은 모두 잘 작동합니다.

경험을 향상시키기 위해 탭을 클릭 할 때 문서 목록을로드하는 데 JQuery를 사용하려고합니다. 나는 html의 덩어리를 클라이언트에게 돌려주고 문서 목록을 담고있는 div의 html을 대체하려고했다.

나는 HTML과

또는

는 SQL의 XML 잊어 클라이언트에 결과 문자열을 반환하고 같이 모두 StringBuilder를 사용하여 HTML 문자열로 시일을 추정 변환 SQL에서 XML을 변환, 다음 몇 가지 옵션을 사용할 수 있습니다 :

Dim _d As New Document 
Dim dt As Data.DataTable = _d.GetDocuments(0, 0, 0, "2009", "") 
Dim builder As New StringBuilder("<table><tr><td>Title1</td><td>Title2</td><td>Title3</td><td>Title4</td></tr>") 
    For i = 0 To dt.Rows.Count - 1 
     builder.Append("<tr><td>") 
     builder.Append("<a href=""http://www.google.ie"" target=""_blank"">") 
     builder.Append(dt.Rows(i).Item("documentTitle").ToString) 
     builder.Append("</a></td>") 
     builder.Append("<td>") 
     builder.Append(dt.Rows(i).Item("documentTitle").ToString) 
     builder.Append("</td>") 
     builder.Append("<td>") 
     builder.Append(dt.Rows(i).Item("documentTitle").ToString) 
     builder.Append("</td>") 
     builder.Append("<td>") 
     builder.Append(dt.Rows(i).Item("documentTitle").ToString) 
     builder.Append("</td></tr>") 
    Next 
builder.Append("</table>") 
dt.Dispose() 
_d = Nothing 
Return builder.ToString 

누구든지 이것을 구현하는 더 좋은 방법이 있습니까?

Stringbuilder를 사용하면 시도한 모든 테스트에서 SQL XML을 사용하는 것으로 보입니다.

답변