0

我有一个关于 VB.net 和使用 rsData 连接到 SQL 数据库的问题。

基本上,我们有几个内联页面将显示我所在机构开设的课程的课程信息。该代码将连接到 SQL DB 并直接以下列格式提取实时数据。

html += "<tr><td>" & rsData("M_Start") & "</td><td>" & rsData("WEEKS") & "</td><td>" &     rsData("DAYSTIME") & "</td></tr>"

现在我想知道人们是否会建议直接从开放的数据库连接中提取或将 RsData 结果映射到字符串?所有数据连接在完成所需部分后打开和关闭,我们在页面内发生了大约 5 个不同的过程。

我担心代码不够干净,我真的很想收拾这个继承而来的噩梦。人们还可以摆脱内联代码和多个数据连接的任何最佳实践吗?

谢谢!

4

1 回答 1

1

很难在没有看到所有内容的情况下为您提供有关如何清理代码的完整解决方案。显示数据的更好方法可能是使用 GridView 或 Repeater。

但是,如果您要在 String 变量中构建 HTML,我建议您像这样发布您发布的部分:

Dim html As New Text.StringBuilder
html.Append(String.Format("<tr><td>{0}</td><td>{1}</td><td>{2}</td></tr>",
                                  rsData("M_Start"),
                                  rsData("WEEKS"),
                                  rsData("DAYSTIME")))

它使其更具可读性,并且 StringBuilder 比多次递增 String 变量执行得更好。

我不确定你是如何处理重复的,但你可以这样做(假设 rsData 属于 DataTable):

Const htmlRowFormat As String = "<tr><td>{0}</td><td>{1}</td><td>{2}</td></tr>"

Dim html As New Text.StringBuilder

For Each dr As DataRow In rsDataTable.Rows
    html.Append(String.Format(htmlRowFormat,
                                 rsDataTable("M_Start"),
                                 rsDataTable("WEEKS"),
                                 rsDataTable("DAYSTIME")))
Next

要获取您的 html:html.ToString

于 2012-03-28T12:58:55.070 回答