У меня есть функция, которая возвращает список адресов электронной почты из хранимого SQL Proc на основе вызываемого идентификатора. Он использует StringBuilder и возвращает один столбец. Для большинства идентификаторов есть 4 или менее адресов электронной почты, и этот формат подходит. Однако теперь мы получаем больше идентификаторов с более чем 10 адресами электронной почты, и это делает страницу слишком длинной.
Функция:
DataTable dt = DAL.ExecStoredProc(DAL.DatabaseName.DB, "storedProc", param);
StringBuilder sb = new StringBuilder();
sb.Append("<br/><br/>");
sb.Append("<table border='0' cellpadding='3'>");
for (int i = 0; i < dt.Rows.Count; i++)
{
sb.Append("<tr><td>");
sb.Append(dt.Rows[i]["EMail"].ToString());
sb.Append("</td></tr>");
}
sb.Append("</table>");
return sb.ToString();
Я пытался использовать следующее, но оно ломается, когда слишком мало адресов для возврата:
DataTable dt = DAL.ExecStoredProc(DAL.DatabaseName.DB, "storedProc", param);
StringBuilder sb = new StringBuilder();
sb.Append("<br/><br/>");
sb.Append("<table border='0' cellpadding='3'>");
for (int i = 0; i < dt.Rows.Count; i++)
{
sb.Append("<tr><td>");
sb.Append(dt.Rows[i]["EMail"].ToString());
i++;
sb.Append("</td>");
sb.Append("<td>");
sb.Append(dt.Rows[i]["EMail"].ToString());
i++;
sb.Append("</td>");
sb.Append("<td>");
sb.Append(dt.Rows[i]["EMail"].ToString());
i++;
sb.Append("</td></tr>");
}
sb.Append("</table>");
return sb.ToString();