VB.net - RsData / Код очистки - PullRequest
       7

VB.net - RsData / Код очистки

0 голосов
/ 21 марта 2012

У меня вопрос относительно VB.net и использования соединений rsData с базой данных SQL.

По сути, у нас есть несколько встроенных страниц, на которых будет отображаться информация о курсах, которые проводит мое учреждение. Код будет подключаться к базе данных SQL и напрямую получать данные в следующем формате.

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

Теперь мне стало интересно, предложат ли кто-нибудь напрямую извлечь данные из открытого соединения с БД или отобразить результаты RsData в строки? Все подключения к данным открываются и закрываются после того, как они выполнили необходимые части, и у нас есть около 5 различных процедур, которые происходят на странице.

Я беспокоюсь, что код не так чист, как мог бы, и очень хотел бы привести в порядок этот унаследованный кошмар. Кроме того, могут ли люди отказаться от использования встроенного кода и нескольких подключений к данным?

Спасибо!

1 Ответ

1 голос
/ 28 марта 2012

Трудно дать вам полное решение о том, как очистить код, не видя всего этого. Лучшим способом отображения ваших данных может быть использование 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

...