2010-06-10 76 views
0

我有一个接口,根据用户点击的标签加载文档列表。Stringbuilder vs SQL FOR XML/XSL转换

我已经从一个SQL 2008数据库检索通过XML数据:

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

然后tranforming使用XSLT样式表的XML。它一切正常。

为了改善体验,我尝试使用JQuery在单击选项卡时加载文档列表。我将返回一大块html到客户端,并替换包含文档列表的div的html。

我有几个选项,从SQL转换XML为HTML和结果字符串返回到客户端

忘掉SQL XML和转换确定年代为使用StringBuilder的像一个HTML字符串:

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。

回答