protected void Page_Load(object sender, EventArgs e) { // ログイン関連処理 if (Request.Cookies["login"] != null) { if (Request.Cookies["login"].Value != "") { if (Session[Request.Cookies["login"].Value] != null) { if (Session[Request.Cookies["login"].Value].ToString() == "1") { Response.Redirect("/sasaki_masayuki/100_regression_management/regression_management.aspx"); } } else { Session[Request.Cookies["login"].Value] = null; Response.Cookies["login"].Expires = DateTime.Now.AddDays(-1); Response.Redirect("./login.aspx"); } } else { Response.Cookies["login"].Expires = DateTime.Now.AddDays(-1); Response.Redirect("./login.aspx"); } } else { Response.Cookies["login"].Expires = DateTime.Now.AddDays(-1); Response.Redirect("./login.aspx"); } // 入力されたメンバーIDを取得 MemberID = int.Parse(Session["MemberID"].ToString()); if (!IsPostBack) { // ポストバックじゃなければ BulletedList1.Items.Clear(); // レンタルしたDVDを名前からIDに変換し、リストに追加 for (int i = 1; i <= 12; i++) { if (Session["DVD" + i.ToString()] != null) { if (Session["DVD" + i.ToString()].ToString() != "") { BulletedList1.Items.Add(Session["DVD" + i.ToString()] as string); DvdID.Add(int.Parse(C_Sasaki_Common.Convert_DVD_Name_To_ID(Session["DVD" + i.ToString()].ToString()))); DvdID_str.Add(C_Sasaki_Common.Convert_DVD_Name_To_ID(Session["DVD" + i.ToString()].ToString())); } } } Session["DvdID"] = string.Join(",", DvdID); } Label1.Text = "以下の" + BulletedList1.Items.Count + "点の商品をレンタルします"; }
//選択した商品を返却 ボタン protected void Button3_Click(object sender, EventArgs e) { if (Do_You_Have_Any_Unreturned_DVDs()) { //未返却のDVDがある場合 List <int> unreturned_id = new List <int>(); string str_unreturned_id = Session["unreturned_id"].ToString(); //Session.Remove("unreturned_id"); string[] arr = str_unreturned_id.Split(','); //選択されたdvdのIDを格納します。重複したIDが入っている可能性がありますが正常です。 List <string> selected_dvd_id = new List <string>(); List <string> selected_id = new List <string>(); int dvd_num = CheckBoxList1.Items.Count; for (int i = 0; i < dvd_num; i++) { if (CheckBoxList1.Items[i].Selected) { //選択されていたら //選択されたレンタルidを抽出 selected_id.Add(arr[i]); //選択されたdvdの名前をidに変換します string name_to_id = C_Sasaki_Common.Convert_DVD_Name_To_ID(CheckBoxList1.Items[i].Value); //格納。 selected_dvd_id.Add(name_to_id); } } //1つ以上選択されたDVDがあるか if (selected_dvd_id.Count != 0) { Label3.Text = ""; Session.Remove("confirmation_error"); List <string> stock_update_date_time_storehouse; //dvd_idからUpdate_Date_Timeを求める stock_update_date_time_storehouse = C_Sasaki_Common.Get_Stock_Update_Date_Time_For_DVD_Id(selected_dvd_id); List <string> rental_update_date_time_storehouse; //レンタルDBのIdからUpdate_Date_Timeを求める rental_update_date_time_storehouse = C_Sasaki_Common.Get_Rental_Update_Date_Time_For_Rental_Id(selected_id); //返却管理画面で返却を押した時のUpdateDateTimeを格納。 Session["management_time_stock_update_datetime"] = string.Join(",", stock_update_date_time_storehouse); Session["management_time_rental_update_datetime"] = string.Join(",", rental_update_date_time_storehouse); Session["Member_ID"] = m_member_id; Session["Select_DVD_ID"] = string.Join(",", selected_dvd_id); Session["Selected_ID"] = string.Join(",", selected_id); Response.Redirect("/sasaki_masayuki/101_return_confirmation/return_confirmation.aspx"); } } }
//テキストボックスに入力されているテキストを取得 //※テキストが入力されていない場合nullを返します。 private string Get_MemberId_From_TextBox() { try { return(TextBox1.Text); } catch (Exception ex) { C_Sasaki_Common.Catch_An_Exception(ex); } return(null); }
public string [] auth(string id, string pw) { //String connectionString = "Data Source=.\\SQLEXPRESS;Initial Catalog=DVDRentalDB;Integrated Security=true"; String connectionString = null; C_Sasaki_Common.Generate_A_Strin_To_Connect_To_The_SQL(ref connectionString); SqlConnection objConn = new SqlConnection(connectionString); objConn.Open(); string sql = "select [IsAdministrator] from [dbo].[User] where [LoginName] = '" + id + "' and [LoginPassword] = '" + pw + "'"; SqlCommand sqlCommand = objConn.CreateCommand(); sqlCommand.CommandText = sql; SqlDataReader sqlDataReader = sqlCommand.ExecuteReader(); sqlCommand.Dispose(); if (sqlDataReader.HasRows) { //IDとパスワードが一致した場合 string[] array = { "", "" }; while (sqlDataReader.Read()) { array[0] = sqlDataReader["IsAdministrator"].ToString(); array[1] = id; } objConn.Close(); return(array); } else { //IDとパスワードの組み合わせがない場合 string[] array = { "-1", id }; objConn.Close(); return(array); } }
//レンタル中の商品を表示 private void View_Items_Currently_Being_Rented() { //入力されたテキストを取得 string member_id_storehouse = Get_MemberId_From_TextBox(); if (member_id_storehouse != "") { //テキストが入力されていたら m_member_id = int.Parse(Get_MemberId_From_TextBox()); //チェックボックスのクリア CheckBoxList1.Items.Clear(); //抽出したdvdidデータの格納先 List <string> dvdid_storehouse = C_Sasaki_Common.Extract_The_Unreturned_DVD_IDs_Of_The_Entered_Member_ID(member_id_storehouse); List <string> unreturned_id = new List <string>(); //レンタル中の商品のIdを抽出 C_Sasaki_Common.Select_SQL("Select * From [dbo].[Rental] Where " + member_id_storehouse + " = MemberId AND IsReturned = 0", "Id", unreturned_id); Session["unreturned_id"] = string.Join(",", unreturned_id); int dvd_id_num = dvdid_storehouse.Count(); for (int i = 0; i < dvd_id_num; i++) { //抽出したDVDの名前の格納先 string dvd_name_storehouse = null; //dvdidから名前に変換 dvd_name_storehouse = C_Sasaki_Common.Extract_The_Name_Of_The_DVD_That_Matches_The_DVD_ID(dvdid_storehouse.ElementAt(i)); CheckBoxList1.Items.Add(dvd_name_storehouse); } } else { //テキストが入力されていない場合 } }
//確定ボタン protected void Button2_Click(object sender, EventArgs e) { //返却管理画面時のUpdate_datetimeの取り出し。 string management_time_stock_update_datetime_str = Session["management_time_stock_update_datetime"].ToString(); string management_time_rental_update_datetime_str = Session["management_time_rental_update_datetime"].ToString(); string[] management_time_stock_update_datetime = management_time_stock_update_datetime_str.Split(','); string[] management_time_rental_update_datetime = management_time_rental_update_datetime_str.Split(','); //dvdidの文字列取得 String selected_dvd_id_str = Session["Select_DVD_ID"].ToString(); //,で区切られたdvdidを分割 string[] selected_dvd_id_arr = selected_dvd_id_str.Split(','); //リストに変換 List <string> selected_dvd_id = new List <string>(); selected_dvd_id.AddRange(selected_dvd_id_arr); //選択されたIDの取得 string selected_id_str = Session["Selected_ID"].ToString(); //Session.Remove("Selected_ID"); //選択されたIDを配列に格納 string[] selcted_id_arr = selected_id_str.Split(','); List <string> selected_id = new List <string>(); selected_id.AddRange(selcted_id_arr); //返却確認画面時のUpdate_datetimeの取り出し List <string> confirmation_time_stock_update_datetime = C_Sasaki_Common.Get_Stock_Update_Date_Time_For_DVD_Id(selected_dvd_id); List <string> confirmation_time_rental_update_datetime = C_Sasaki_Common.Get_Rental_Update_Date_Time_For_Rental_Id(selected_id); //datetimeが一致するか確認 //一致していない場合falseがはいるbool bool b_sync = true; //stockの数を比較の回数とする int check_num = confirmation_time_stock_update_datetime.Count; for (int i = 0; i < check_num; i++) { //管理画面時の更新日時と確認時の更新日時が一致しているかの判定をしていく if (management_time_stock_update_datetime[i] != confirmation_time_stock_update_datetime[i]) { //ストックの更新日時が一致していない場合 b_sync = false; } if (management_time_rental_update_datetime[i] != confirmation_time_rental_update_datetime[i]) { //レンタルの更新日時が一致していない場合 b_sync = false; } } if (b_sync) { //一致している場合 int user_id = C_Sasaki_Common.Login_Name_To_Id(Request); int return_dvd_num = return_dvd_id_list.Count(); for (int i = 0; i < return_dvd_num; i++) { //日付を求める DateTime dt = DateTime.Now; //StockDBの処理 { //更新日時を更新 C_Sasaki_Common.Update_SQL("Update [dbo].[Stock] SET UpdateDateTime = '" + dt.ToString("yyyy-MM-dd HH:mm:ss.fff") + "' Where DVDId = " + return_dvd_id_list[i]); //更新者を現在のユーザーに設定 C_Sasaki_Common.Update_SQL("Update [dbo].[Stock] SET UpdateUserId = " + user_id + " Where DVDId = " + return_dvd_id_list[i]); //Stockを増やす。 C_Sasaki_Common.Update_SQL("Update [dbo].[Stock] SET Quantity += 1 Where DVDId = " + return_dvd_id_list[i]); } //RentalDBの処理 { //更新日時を更新 C_Sasaki_Common.Update_SQL("Update [dbo].[Rental] SET UpdateDateTime = '" + dt.ToString("yyyy-MM-dd HH:mm:ss.fff") + "' Where Id = " + selected_id[i]); //更新者を現在のユーザーに設定 C_Sasaki_Common.Update_SQL("Update [dbo].[Rental] SET UpdateUserId = " + user_id + " Where Id = " + selected_id[i]); //RentalDBのIDと選択されたIDが一致する物のIsReturnedフラグをtrueに設定。(※一つだけ) C_Sasaki_Common.Update_SQL("Update [dbo].[Rental] SET IsReturned = 1 Where " + selected_id[i] + " = Id"); } } } else { //一致していない Session["confirmation_error"] = "返却確認時にエラー(競合)が発生しました。もう一度やり直してください。"; } Termination_Process(); Redirect_Regression_Management(); }
protected void Page_Load(object sender, EventArgs e) { if (Request.Cookies["login"] != null) { if (Request.Cookies["login"].Value != "") { if (Session[Request.Cookies["login"].Value] != null) { if (Session[Request.Cookies["login"].Value].ToString() == "0") { Response.Redirect("./../../RentalForm.aspx"); } } else { Session[Request.Cookies["login"].Value] = null; Response.Cookies["login"].Expires = DateTime.Now.AddDays(-1); Response.Redirect("./../../login.aspx"); } } else { Response.Cookies["login"].Expires = DateTime.Now.AddDays(-1); Response.Redirect("./../../login.aspx"); } } else { Response.Cookies["login"].Expires = DateTime.Now.AddDays(-1); Response.Redirect("./../../login.aspx"); } //dvdidの文字列取得 String selected_dvd_id = Session["Select_DVD_ID"].ToString(); //,で区切られたdvdidを分割 string[] str_arr = selected_dvd_id.Split(','); //メンバーID格納 m_member_id = int.Parse(Session["Member_ID"].ToString()); //リストに格納 int dvd_id_num = str_arr.Length; for (int i = 0; i < dvd_id_num; i++) { return_dvd_id_list.Add(int.Parse(str_arr[i])); } if (!IsPostBack) { //ポストバックじゃなければ //Listのクリア BulletedList1.Items.Clear(); for (int i = 0; i < dvd_id_num; i++) { string dvd_name = C_Sasaki_Common.Extract_The_Name_Of_The_DVD_That_Matches_The_DVD_ID(str_arr[i]); BulletedList1.Items.Add(dvd_name); } } Label1.Text = "以下の" + BulletedList1.Items.Count + "点の商品を返却します。"; }
protected void Button2_Click(object sender, EventArgs e) { // 確定ボタン if (Session["DvdID"] != null) { //セッションの中身がnullじゃない場合 string dvd_id = null; dvd_id = Session["DvdID"].ToString(); string[] dvd_id_arr = dvd_id.Split(','); foreach (string i in dvd_id_arr) { DvdID.Add(int.Parse(i)); } } InsertDateTime = DateTime.Now; string connection_csring = null; C_Sasaki_Common.Generate_A_Strin_To_Connect_To_The_SQL(ref connection_csring); SqlConnection sql_connection = new SqlConnection(connection_csring); sql_connection.Open(); SqlCommand sqlcommand = sql_connection.CreateCommand(); // Rentalの最後のIDを取得 string max_id = null; C_Sasaki_Common.Select_SQL("Select MAX(Id) as Id From [dbo].[Rental]", "Id", ref max_id); Id = int.Parse(max_id); int limit = DvdID.Count(); // ログインしているユーザーIDを持ってくる int InsertUserID = C_Sasaki_Common.Login_Name_To_Id(Request); // レンタル画面時のUpdateDateTimeを格納 string RentalForm_Stock_UpdateDateTime_str = Session["RentalForm_Stock_UpdateDateTime"].ToString(); string[] RentalForm_UpdateDateTime = RentalForm_Stock_UpdateDateTime_str.Split(','); List <string> Stock_Quantity_str = new List <string>(); C_Sasaki_Common.Select_SQL("Select * From [dbo].[Stock] ", "Quantity", Stock_Quantity_str); // レンタル確認画面時のUpdateDateTimeを格納 List <string> Confirm_Stock_UpdateDateTime = C_Sasaki_Common.Get_Stock_Update_Date_Time_For_DVD_Id(DvdID_str); //datetimeが一致するか確認 //一致していない場合falseがはいるbool bool b_sync = true; //stockの数を比較の回数とする int check_num = Confirm_Stock_UpdateDateTime.Count; for (int i = 0; i < check_num; i++) { //管理画面時の更新日時と確認時の更新日時が一致しているかの判定をしていく if (RentalForm_UpdateDateTime[i] != Confirm_Stock_UpdateDateTime[i]) { //ストックの更新日時が一致していない場合 b_sync = false; } } if (b_sync) { // 日時を求める DateTime dt = DateTime.Now; for (int i = 0; i < limit; i++) { // レンタルしたものをインサートする sqlcommand.CommandText = Up_To_Insert_SQL() + "( " + (Id + i + 1) + "," // ID + MemberID + "," // MemberID + DvdID[i] + "," // DVDID + 0 + "," // IsReturned + "'" + InsertDateTime.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'" + "," // InsertDateTime + InsertUserID + "," // InsertUserID ログインユーザーID + "NULL" + "," // UpdateDateTime + "NULL" + // UpdateDateUserID " )"; //StockDBの処理 { //更新日時を更新 C_Sasaki_Common.Update_SQL("Update [dbo].[Stock] SET UpdateDateTime = '" + dt.ToString("yyyy-MM-dd HH:mm:ss.fff") + "' Where DVDId = " + DvdID[i]); //更新者を現在のユーザーに設定 C_Sasaki_Common.Update_SQL("Update [dbo].[Stock] SET UpdateUserId = " + InsertUserID + " Where DVDId = " + DvdID[i]); if (DvdID[i] != 11) { if (Stock_Quantity_str[DvdID[i] - 1] != "0") { C_Sasaki_Common.Update_SQL("Update[dbo].[Stock] SET Quantity -= 1 Where DVDId = " + DvdID[i]); } } else { if (Stock_Quantity_str[9] != "0") { C_Sasaki_Common.Update_SQL("Update[dbo].[Stock] SET Quantity -= 1 Where DVDId = " + DvdID[i]); } } } sqlcommand.ExecuteNonQuery(); } } else { //一致していない Session["Rental_Comfirm_error"] = "レンタル確認時にエラー(競合)が発生しました。もう一度やり直してください。"; } sqlcommand.Dispose(); sql_connection.Close(); sql_connection.Dispose(); Response.Redirect("RentalForm.aspx"); }
protected void Page_Load(object sender, EventArgs e) { // ログイン関連処理 if (Request.Cookies["login"] != null) { if (Request.Cookies["login"].Value != "") { if (Session[Request.Cookies["login"].Value] != null) { if (Session[Request.Cookies["login"].Value].ToString() == "1") { Response.Redirect("/sasaki_masayuki/100_regression_management/regression_management.aspx"); } } else { Session[Request.Cookies["login"].Value] = null; Response.Cookies["login"].Expires = DateTime.Now.AddDays(-1); Response.Redirect("./login.aspx"); } } else { Response.Cookies["login"].Expires = DateTime.Now.AddDays(-1); Response.Redirect("./login.aspx"); } } else { Response.Cookies["login"].Expires = DateTime.Now.AddDays(-1); Response.Redirect("./login.aspx"); } Label1.Text = ""; //確認画面からのエラーがあれば表示する if (Session["Rental_Comfirm_error"] != null) { Label1.Text = Session["Rental_Comfirm_error"].ToString(); } string connectionString = null; C_Sasaki_Common.Generate_A_Strin_To_Connect_To_The_SQL(ref connectionString); sqlConnection = new SqlConnection(connectionString); sqlConnection.Open(); SqlCommand sqlCommand = sqlConnection.CreateCommand(); sqlCommand.CommandText = "Select * From [DVD]"; sqlDataReader = sqlCommand.ExecuteReader(); sqlCommand.Dispose(); List <string> Stock_Quantity_str = new List <string>(); List <int> Stock_Quantity = new List <int>(); C_Sasaki_Common.Select_SQL("Select * From [dbo].[Stock] ", "Quantity", Stock_Quantity_str); // ストックの在庫をint型に変換 for (int i = 0; i < Stock_Quantity_str.Count; i++) { Stock_Quantity.Add(int.Parse(Stock_Quantity_str[i].ToString())); } if (!IsPostBack) { CheckBoxList1.Items.Clear(); // DVDを表示 while (sqlDataReader.Read()) { string str = sqlDataReader["Name"].ToString(); CheckBoxList1.Items.Add(str); } // 在庫の数が0より少なかったらチェックできなくする for (int i = 0; i < Stock_Quantity.Count; i++) { if (Stock_Quantity[i] <= 0) { CheckBoxList1.Items[i].Enabled = false; CheckBoxList1.Items[i].Text += " 在庫切れ"; } } // Stockにそもそもないからチェック不可にする CheckBoxList1.Items[9].Enabled = false; CheckBoxList1.Items[11].Enabled = false; CheckBoxList1.Items[9].Text += " 在庫切れ"; CheckBoxList1.Items[11].Text += " 在庫切れ"; } sqlDataReader.Close(); sqlConnection.Close(); sqlConnection.Dispose(); }
protected void Button2_Click(object sender, EventArgs e) { // テキストボックスに入力されているメンバーIDを取得 string MemberIDText = GetMemberId_TextBox(); List <string> MemberID_Check = new List <string>(); bool ID_Check = false; C_Sasaki_Common.Select_SQL("Select * From [dbo].[Member] ", "Id", MemberID_Check) ; for (int i = 0; i < MemberID_Check.Count; i++) { // 入力されたメンバーIDとDB内のメンバーIDを比較 if (MemberID_Check[i] == MemberIDText) { ID_Check = true; break; } } // テキストボックス内に入力されているかつDB内IDと一致していれば次ページに進む if (MemberIDText != "" && ID_Check == true) { Label1.Text = ""; Label4.Text = ""; Label2.ForeColor = Color.Black; Session.Remove("Rental_Comfirm_error"); int count = 1; // DVDIDカウント // チェックが入っているものをSessionに入れる(力技) foreach (ListItem li in CheckBoxList1.Items) { // チェックが付いているものにデータを入れる if (li.Selected) { switch (count) { case 1: Session["DVD1"] = li.Text; break; case 2: Session["DVD2"] = li.Text; break; case 3: Session["DVD3"] = li.Text; break; case 4: Session["DVD4"] = li.Text; break; case 5: Session["DVD5"] = li.Text; break; case 6: Session["DVD6"] = li.Text; break; case 7: Session["DVD7"] = li.Text; break; case 8: Session["DVD8"] = li.Text; break; case 9: Session["DVD9"] = li.Text; break; case 10: Session["DVD10"] = li.Text; break; case 11: Session["DVD11"] = li.Text; break; case 12: Session["DVD12"] = li.Text; break; } } // チェックがついていないものにはなにもいれない else { switch (count) { case 1: Session.Remove("DVD1"); break; case 2: Session.Remove("DVD2"); break; case 3: Session.Remove("DVD3"); break; case 4: Session.Remove("DVD4"); break; case 5: Session.Remove("DVD5"); break; case 6: Session.Remove("DVD6"); break; case 7: Session.Remove("DVD7"); break; case 8: Session.Remove("DVD8"); break; case 9: Session.Remove("DVD9"); break; case 10: Session.Remove("DVD10"); break; case 11: Session.Remove("DVD11"); break; case 12: Session.Remove("DVD12"); break; } } count++; } List <string> Dvdid = new List <string>(); for (int i = 1; i <= 12; i++) { if (Session["DVD" + i.ToString()] != null) { if (Session["DVD" + i.ToString()].ToString() != "") { Dvdid.Add(C_Sasaki_Common.Convert_DVD_Name_To_ID(Session["DVD" + i.ToString()].ToString())); } } } Session["dvdid"] = string.Join(",", Dvdid); List <string> Stock_UpdateDateTime; Stock_UpdateDateTime = C_Sasaki_Common.Get_Stock_Update_Date_Time_For_DVD_Id(Dvdid); Session["RentalForm_Stock_UpdateDateTime"] = string.Join(",", Stock_UpdateDateTime); if (Dvdid.Count != 0) { Session["MemberID"] = MemberIDText; Response.Redirect("RentalConfirm.aspx"); } else { Label3.ForeColor = Color.Red; } } else if (MemberIDText == "") { Label4.Text = "会員IDが空欄です。入力してください。"; Label2.ForeColor = Color.Red; Label4.ForeColor = Color.Red; } else if (ID_Check == false) { Label4.Text = "入力された会員IDは見つかりませんでした。"; Label2.ForeColor = Color.Red; Label4.ForeColor = Color.Red; } }