繁体   English   中英

从动态添加的文本框向数据库添加数据

[英]Add data from dynamically added textbox to database

下面是在单击按钮时动态添加文本框和按钮的代码。 我需要在另一个按钮单击时将tat文本框数据添加到数据库。 对此一无所知。 任何建议都会有所帮助。

private void button1_Click(object sender, EventArgs e)
{
    int v;
    v = c++;
    panel1.VerticalScroll.Value = VerticalScroll.Minimum;

    Button btn = new Button();
    btn.Name = "btn" + v;
    btn.Text = "Remove";
    btn.Location = new Point(300, 5 + (30 * v));
    btn.Click += new EventHandler(btn_Click);

    TextBox txt = new TextBox();
    txt.Name = "TextBox" + v;
    txt.Location = new Point(30, 5 + (30 * v));
    txt.Tag = btn;

    TextBox txt1 = new TextBox();
    txt1.Name = "TextBox2" + v;
    txt1.Location = new Point(170, 5 + (30 * v));
    txt1.Tag = btn;

    panel1.Controls.Add(txt);
    panel1.Controls.Add(txt1);
    panel1.Controls.Add(btn);
}

private void btn_Click(object sender, EventArgs e)
{
    for (int i = panel1.Controls.Count - 1; i >= 0; i--) 
    {
        var item = panel1.Controls[i];

        if (item.Tag == sender || item == sender)
            panel1.Controls.Remove(item);
    }
}

解决方案:您需要按以下方式保存动态TextBox控件的Name ,然后才能访问它们:

List<String> controlNames=new List<String>();
TextBox txt = new TextBox();
txt.Name = "TextBox" + v;
controlNames.Add(txt.Name);
txt.Location = new Point(30, 5 + (30 * v));
txt.Tag = btn;


TextBox txt1 = new TextBox();
txt1.Name = "TextBox2" + v;
controlNames.Add(txt1.Name);
txt1.Location = new Point(170, 5 + (30 * v));
txt1.Tag = btn;

现在访问它们,同时将数据保存到数据库中

protected void btnSaveData_Click(object sender, EventArgs e)
{

    //Read TextBox Values
    TextBox txBox1 = (TextBox) Controls.Find(controlNames[0],true)[0];
    TextBox txtBox2 = (TextBox) Controls.Find(controlNames[1],true)[0];
    MySqlConnection con = new MySqlConnection("connection string here");
    String query="INSERT INTO [TABLENAME] ([COLUMNNAME1],[COLUMNNAME2]) VALUES(@COLUMNVALUE1 , @COLUMNVALUE2)";
    MySqlCommand command = new MySqlCommand(query,con);

    command.Parameters.AddWithValue("@COLUMNNAME1",txBox1.Text);
    command.Parameters.AddWithValue("@COLUMNNAME2",txBox2.Text);

    int status=0;
    con.Open();
    status = command.ExecuteNonQuery();

    if(status>0)
    {
        MessageBox.Show("Rows Inserted Successfully!");
    }
    else
    {
        MessageBox.Show("No Rows Inserted!");
    }

    con.Close();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM