2012-03-21 3 views
0

У меня есть вопрос относительно VB.net и использования подключений rsData к базе данных SQL.VB.net - RsData/Очистка кода

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

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

Теперь мне было интересно, если бы люди предполагают, потянув непосредственно из соединения открытой БД или отображения результатов 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 работает лучше чем приращение переменной 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

Смежные вопросы