0

VB.net と、SQL データベースへの rsData 接続の使用について質問があります。

基本的に、私の教育機関が運営するコースのコース情報を表示するインライン ページがいくつかあります。コードは SQL DB に接続し、ライブ データを次の形式で直接取得します。

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

今、人々が開いている DB 接続から直接プルすることを提案するか、RsData の結果を文字列にマップするかどうか疑問に思っていましたか? すべてのデータ接続は、必要な部分が完了した後に開いたり閉じたりします。ページ内で発生する約 5 つの異なる手順があります。

私は、コードが可能な限りクリーンではないことを心配しており、この継承された悪夢を本当に片付けたいと思っています. また、インライン コードと複数のデータ接続を使用して、ベスト プラクティスを捨てることはできますか?

ありがとう!

4

1 に答える 1

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 は 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 に答える