this.Controls.Add(new TextBox { ID = "MyTextBox", Text = "Значение из базы"});
Лучше добавлять на не страницу, а PlaceHolder или Panel, чтобы проще было найти.
Динамические элементы нужно создавать всегда, после каждого PostBack, чтобы восстанавливалось состояние и можно было получить доступ к элементам программно.
В MVC просто "нарисовать" на странице HTML:
for(int i = 1; i<=3;i++)
{
<input type="text" name="textBox[]" value="значение из модели, которые было получено из базы" />
}
В WebForms, в принципе, кроме религии, ничто не запрещает делать аналогично :-)