如何从动态生成的文本框asp.net向sql db插入值

时间:2013-08-08 13:13:28

标签: asp.net sql

首先,我是Visual Studio和Asp.net C#的新手......等等......

我正在为自行车创建一个简单的租赁应用程序而且卡住了。

我制作了一个公式,用于为一辆自行车添加订单,并在提交按钮时插入一个没有问题的按钮。

现在我的问题.. 同一个客户可以同时租用更多自行车而不是为每辆新自行车再次填写公式我希望能够为同一公式添加更多自行车(1辆自行车=序列号)

为了做到这一点,我在网上找到了一个解决方案,我拿走了序列号字段并创建了一个字段,用户填写了客户想要租用的自行车数量,然后是该字段旁边的按钮。当用户然后在金额字段中写入例如3并按下按钮时,它会自动弹出3个文本框,用于输入每个自行车序列号。

现在我需要一些解决方案来插入带有序列号的文本框的值..

按下使插入到我的SQL数据库的按钮后,我必须进行一些循环来计算我必须进行多少次插入,并且还打印每个订单的序列号的不同值。

example: 

1 customer 3 bikes

bike 1 = Serial Number 123
bike 2 = Serial Number 234
bike 3 = Serial Number 345 

现在我必须在点击发送订单按钮后使用这3个不同的序列号进行3次插入。

我是在正确的轨道上吗?

protected void btnGenerateControl_Click(object sender, EventArgs e)
    {



        int Count = Convert.ToInt32(Qty.Text);
        for(int i =1; i <= Count; i++)
        {
            TextBox txtbox = new TextBox();
            txtbox.Text = "Textbox - " + i.ToString();
            pnlTextBoxes.Controls.Add(txtbox);
        }
    }

    protected void btnAddOrder_Click(object sender, EventArgs e)
    {
        int Count = Convert.ToInt32(Qty.Text);
        for (int i = 1; i <= Count; i++)
        {
            String query = "insert into Orders (CustID, OrderDate, Time, ProductID, ProjectID, Status, FlottenID)values('" + CustID.Text + "','" + OrderDate.Text + "','" + Time.Text + "','" + ProductID.Value + "','" + ProjectID.Value + "','" + Status.Value +"','" +HERE I NEED TO CATCH THE VALUE OF SERIAL NUMBER+ "')";
            String query1 = "commit;";
            DataLayer.DataConnector dat = new DataLayer.DataConnector("Provider=SQLOLEDB; data source=****;database=event;user ID=****;password=*****; Persist Security Info=False");
            dat.DataInsert(query);
            dat.DataInsert(query1);
        }

    }

2 个答案:

答案 0 :(得分:1)

将以下代码写入btnGenerateControl_Click1事件(For Loop)下面

 pnlTextBoxes.Controls.Add(new LiteralControl("<input id='txt' name='Textbox" + i + "'type='text'  />"));
        pnlTextBoxes.Controls.Add(new LiteralControl("<br />"));

并在btnAddOrder_Click1事件中写下以下代码(在For Loop下面)

String query = "insert into Orders (CustID, OrderDate, Time, ProductID, ProjectID, Status, FlottenID)values('" + CustID.Text + "','" + OrderDate.Text + "','" + Time.Text + "','" + ProductID.Value + "','" + ProjectID.Value + "','" + Status.Value + "','" + Request.Form["Textbox" + i.ToString()] + "')";
        MySqlCommand cmd = new MySqlCommand(query,con);
        cmd.ExecuteNonQuery();

答案 1 :(得分:0)

Hai我通过使用Temperory数据输出(不像你的数据)。所以使用下面的逻辑你可以得到你的输出。

首先,我使用像

这样的数据库表
 orders(id int,person_name varchar(20))

然后根据我的数据库,我使用下面的逻辑。我使用标签只检查

public partial class stack_over : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}

string connString = "Your Database Connection String";


protected void btnGenerateControl_Click1(object sender, EventArgs e)
{
    int Count = Convert.ToInt32(Qty.Text);


    for (int i = 1; i <= Count; i++)
    {

        pnlTextBoxes.Controls.Add(new LiteralControl("<input id='txt' name='Textbox" + i + "' type='text'  />"));
        pnlTextBoxes.Controls.Add(new LiteralControl("<br />"));


    }
}
protected void btnAddOrder_Click1(object sender, EventArgs e)
{
    MySqlConnection con = new MySqlConnection(connString);
    con.Open();
     int Count = Convert.ToInt32(Qty.Text);
    for (int i = 1; i <= Count; i++)
    {

     Label1.Text = Request.Form["Textbox"+i.ToString()];
     String query = "insert into Orders values('" + Label1.Text + "','ajay')";
        MySqlCommand cmd = new MySqlCommand(query,con);
        cmd.ExecuteNonQuery();

    }
}

}

希望您能从本规范中获得创意。 快乐编程......