用datareader从数据库多列中填充数据的文本框

本文关键字:数据 填充 文本 datareader 数据库 | 更新日期: 2023-09-27 18:08:19

我是新的数据库的东西,但想用数据阅读器和sql查询填充文本框的数据。我的程序从我的数据库中的每艘船创建4个文本框。每个文本框需要填充来自不同列的数据。当4个文本框填满后,将添加一个包含4个文本框的新船,并且必须将每列的第二行添加到文本框中。

这是我到目前为止的代码:

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没有问题。我怎样才能从我的数据库表的列填充我的文本框的数据?

如果你能给我指个方向就太好了。

用datareader从数据库多列中填充数据的文本框

使用此代码,您从未为生成的<input type='text'标记赋值:

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' value='" + tb_name.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' value='" + tb_name.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' value='" + tb_name.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' value='" + tb_name.Text + "' id='" + tb_name.ID + "' runat='server'/></div></div></div>"));
                tb_names.Add(tb_name);
                i++;
            }
        }
    }
}