0

まず第一に、私はVisual StudioとAsp.net C#などに本当に慣れていません...

自転車用の簡単なレンタル アプリケーションを作成していて、行き詰まってしまいました。

1台の自転車の注文を追加するための数式を作成し、送信ボタンをクリックして問題なく挿入しました。

ここで私の問題に..同じ顧客が同時により多くの自転車をレンタルすることが可能であり、新しい自転車ごとに数式を再度記入する代わりに、同じ数式に自転車を追加できるようにしたい (1 自転車 =シリアルナンバー)

これを行うために、シリアル番号フィールドを削除し、ユーザーがレンタルしたい自転車の量を入力するフィールドを作成し、フィールドの横にボタンを作成するソリューションをWebで見つけました。ユーザーが金額フィールドにたとえば 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 に答える