Я новичок в материале базы данных, но хочу заполнить текстовые поля данными с помощью datareader и sql-запроса. Моя программа создает 4 текстовых поля с каждого корабля в моей базе данных. Каждое текстовое поле должно быть заполнено данными из другого столбца. Когда заполняются 4 текстовых поля, будет добавлен новый корабль с 4 текстовыми полями, а вторая строка каждого столбца должна быть добавлена в текстовые поля.Заполнить текстовые поля данными из нескольких столбцов базы данных с помощью datareader
Это мой код до сих пор:
public void Schip()
{
using (SqlConnection thisConnection = new SqlConnection("Data Source=VMB-LP12;Initial Catalog=SmmsData;Integrated Security=True"))
{
string oString = "Select SchipNaam, RederijNr, Lengte, Laadvermogen FROM AlgSchipInfo";
SqlCommand oCmd = new SqlCommand(oString, thisConnection);
thisConnection.Open();
using (SqlDataReader oReader = oCmd.ExecuteReader())
{
int i = 0;
while (oReader.Read())
// for (int i = 0; i < count; i++)
{
System.Web.UI.HtmlControls.HtmlGenericControl createDiv =
new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");
createDiv.ID = "createDiv";
this.Controls.Add(createDiv);
List<TextBox> tb_names = new List<TextBox>();
TextBox tb_name = new TextBox();
//TextBox tb_name = new TextBox();
tb_name.ID = "CreateT_" + i.ToString() + "_1";
tb_name.Text = (oReader["SchipNaam"].ToString());
createDiv.Controls.Add(new LiteralControl
("<div class='form-group'><div class='clearfix' ></div><div class='row'><div class='col-md-3'></div><div class='col-md-3'> Scheepspnaam: <input type='text' id='" + tb_name.ID + "' runat='server'/></div></div></div>"));
tb_names.Add(tb_name);
//TextBox tb_name1 = new TextBox();
tb_name.ID = "CreateT_" + i.ToString() + "_2";
tb_name.Text = (oReader["RederijNr"].ToString());
createDiv.Controls.Add(new LiteralControl
("<div class='form-group'><div class='clearfix' ></div><div class='row'><div class='col-md-3'></div><div class='col-md-3'> RederijNr:<input type='text' id='" + tb_name.ID + "' runat='server'/></div></div></div>"));
tb_names.Add(tb_name);
//TextBox tb_name2 = new TextBox();
tb_name.ID = "CreateT_" + i.ToString() + "_3";
tb_name.Text = (oReader["Lengte"].ToString());
createDiv.Controls.Add(new LiteralControl
("<div class='form-group'><div class='clearfix' ></div><div class='row'><div class='col-md-3'></div><div class='col-md-3'> Lengte :<input type='text' id='" + tb_name.ID + "' runat='server'/></div></div></div>"));
tb_names.Add(tb_name);
//TextBox tb_name3 = new TextBox();
tb_name.ID = "CreateT_" + i.ToString() + "_4";
tb_name.Text = (oReader["Laadvermogen"].ToString());
createDiv.Controls.Add(new LiteralControl
("<div class='form-group'><div class='clearfix' ></div><div class='row'><div class='col-md-3'></div><div class='col-md-3'> Laadvermogen:<input type='text' id='" + tb_name.ID + "' runat='server'/></div></div></div>"));
tb_names.Add(tb_name);
i++;
}
}
}
}
Я использую мой запрос, чтобы найти четыре колонки и мой DataReader читать данные. С tb_name.text = (oReader["SchipMaam"].ToString())
текстовые поля будут заполнены. Я пропустил часть этой головоломки?
Проблема в том, что мои текстовые поля остаются пустыми, когда я использую это. Нет проблем с DIV или ID, насколько я знаю. Как я могу заполнить свои текстовые поля данными из столбцов моей таблицы базы данных?
Было бы здорово, если бы вы могли указать мне в правильном направлении.
Почему Вы добавляете все TextBoxes к tb_names? – sachin
Я хочу, чтобы каждое текстовое поле имело и уникальное имя. Я делаю это с помощью инкремента int (int i и i ++), поэтому я могу всегда вносить конкретные изменения в текстовое поле. –
и почему у вас есть TextBox tb_name = new TextBox(); прокомментировал? – sachin