0

首先,我对 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);
        }

    }
4

2 回答 2

1

在 btnGenerateControl_Click1 事件中编写以下代码(在 For 循环下方)

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

并在 btnAddOrder_Click1 事件中编写以下代码(在 For 循环下方)

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();
于 2013-08-08T17:11:34.083 回答
0

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

起初我把数据库表像

 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();

    }
}

}

希望你能从这个代码中得到想法。快乐编程......

于 2013-08-08T17:01:06.000 回答