2012-03-21 54 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