2010-06-10 2 views
0

У меня есть интерфейс, который загружает список документов в зависимости от вкладки, нажатой пользователем.Stringbuilder vs SQL FOR XML/XSL Transform

Я извлечение данных с помощью XML из базы данных SQL 2008 с:

SELECT col1, col2 col3 FROM documents WHERE typeId = 4 FOR XML PATH('doc'), ROOT('documents') 

Затем в XML, при трансформации с помощью таблицы стилей XSLT. Все работает отлично.

Чтобы улучшить опыт, я пытаюсь использовать JQuery для загрузки списка документов при нажатии на вкладку. Я собирался вернуть кусок html клиенту и заменить html div, содержащий список документов.

У меня есть несколько вариантов, преобразования XML из SQL в HTML и возвращает результирующую строку клиенту

или

Forget о SQL XML и преобразовать датируемый в HTML строку с помощью StringBuilder как :

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 в любых тестах, которые я пробовал.

ответ