2016-07-10 14 views
0

私は予約席を数えるためのカウンターを持っています。私は、座席数が2以上になったときにウェブサイトがクライアントにエラーを出すことを望む。このカウンターは機能しませんでした。クライアントは2つ以上の座席を予約することができ、その悪い。私のasp.netカウンターが動作しませんでした

protected void btn_next_Click(object sender, EventArgs e) 
{ 

    int t = 0; 
    int c = 0; 

if(t<=2){ 

    string seatname; 
    string seatnumber; 

    seatname = DropDownList1_SeatName.SelectedItem.ToString(); 
    seatnumber = DropDownList2_SeatNumber.SelectedItem.ToString(); 

    //چک کردن انتخاب نکردن دو صندلی تکراری توسط یک نفر 
    string strquery = "select count(*) from SingleSeatTable where [email protected]"; 

    SqlConnection connection2 = DBConnection.getConnection(); 
    connection2.Open(); 
    SqlCommand cmd2 = new SqlCommand(); 
    cmd2.Connection = connection2; 
    cmd2.CommandText = strquery; 

    cmd2.Parameters.Add("@SeatNumber", seatnumber); 

    int intRowCount1 = (int)cmd2.ExecuteScalar(); 
    connection2.Close(); 


    if (intRowCount1 == 1) 
    { 
     Messages myMsg = new Messages(); // ایجاد نمونه از کلاس 
     myMsg.CreateMessageAlert("صندلی رزرو شده است . صندلی دیکری انتخاب نماییدو یا در صورت رزرو تمامی صندلی ها میز و شماره صندلی را دیگری انتخاب نمایید."); 

    } 


    else 
    { 
     /////////////////////counter 
     // int t = 0; 
     // int c = 0; 

     // if(t<=2){ 

     string strQuery = "INSERT INTO [SingleSeatTable](SeatNumber,TableName,EventCode,Reserved,customer_id)" + "VALUES(@SeatNumber,@TableName,@EventCode,@Reserved,@customer_id)"; 

     SqlConnection connection = DBConnection.getConnection(); 
     connection.Open(); 
     SqlCommand cmd = new SqlCommand(); 
     cmd.Connection = connection; 
     cmd.CommandText = strQuery; 

     string cis = Session["customerID"].ToString(); 
     /******query No.1********/ 
     cmd.Parameters.Add("@SeatNumber", seatnumber); 
     cmd.Parameters.Add("@TableName", seatname); 
     cmd.Parameters.Add("@EventCode", "100"); 
     cmd.Parameters.Add("@Reserved", "1"); 
     cmd.Parameters.Add("@customer_id", cis); 

     cmd.ExecuteNonQuery(); 
     connection.Close(); 
     Response.Redirect("ReservationSucces.aspx"); 
     t = c++; 
     // t = c++; 
     // } 
    } 



    } 

      else 
     { 
      Messages myMsg = new Messages(); // ایجاد نمونه از کلاس 
      myMsg.CreateMessageAlert("ظرفیت رزرو شما پر شده است . شما نمی توانید بیش از دو صندلی انتخاب نمایید"); 
     } 


     } 
+0

いずれかが私を助けることができますか? – Ahmed

+0

あなたのロジックt = C++; t値0を返し、c値を1に設定します。本当に必要なのは何ですか? –

+0

私は、クライアントが座席を予約したときに1を設定します。クライアントが再び2を設定したときにtを設定します。私はtを2に設定し、クライアントが再度予約サイトを望む場合は、クライアントにエラーを出します(2席以上は予約できません)。最大座席数は2です。 – Ahmed

答えて

0

tとcの可変スコープがクリック機能内にあるため、カウンタが機能していません。この関数を呼び出すたびに、tとcの値は0(ゼロ)にリセットされます。

テーブルに挿入する前に、最初にすべての顧客の座席数をdbからチェックします。

 Messages myMsg = new Messages(); 
    short seatCounts = 0; 
      string sql= "select count(customer_id) from SingleSeatTable where customer_id [email protected]_id"; 
      SqlConnection conn = DBConnection.getConnection(); 
      SqlCommand cmd = new SqlCommand(sql, conn); 
      cmd.Parameters.Add("@customer_id", SqlDbType.VarChar); 
      cmd.Parameters["@customer_id"].Value = cis; 
      try 
      { 
       conn.Open(); 
       seatCounts = (Int32)cmd.ExecuteScalar(); 
      } 
      catch (Exception ex) 
      { 

       myMsg.CreateMessageAlert(ex.Message);    
      } 
    if(seatCounts < 2) 
    { 
    //allow to insert another seat 
    } 
    else 
    { 
     myMsg.CreateMessageAlert("you can not add more than two seats"); //or your message 
    } 
+0

質問を実行する前に座席番号を確認する必要がありますか? – Ahmed

+0

あなたは2席しか予約できないと述べました。だから、最初にチェックするたびに、その顧客が予約した席数。 –

+0

okありがとうございますが、どの機能をチェックする必要がありますか?私は関数を作成する必要がありますか? – Ahmed

関連する問題