VB.net - RsData /清理代码

时间:2012-03-21 15:32:36

标签: asp.net sql vb.net code-cleanup

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

基本上我们有一些内联页面会显示我所在机构运行的课程的课程信息。代码将连接到SQL DB并直接以下列格式提取实时数据。

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

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

我担心代码不是那么干净,并且真的想整理这个继承的噩梦。人们也可以通过内联代码和多个数据连接摆脱任何最佳实践吗?

谢谢!

1 个答案:

答案 0 :(得分: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