2012-03-21 38 views
0

我有一个关于VB.net和rsData连接到SQL数据库的使用问题。VB.net - RsData /清理代码

基本上我们有几个内嵌页面,可以显示我的机构运行的课程的课程信息。该代码将连接到SQL DB并直接以以下格式通过实时数据。

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

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

我担心代码不够干净,而且真的很想清理这个继承的恶梦。也可以通过内联代码和多个数据连接来排除任何最佳做法吗?

谢谢!

回答

1

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

但是,如果你要建立的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性能更好比多次增加一个字符串变量。

我不知道你是如何处理的重复,但你可以做这样的事情(假设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