⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 user_reserve.aspx.cs

📁 酒店管理,主要从事酒店管理都可以.这可是北大青鸟的程序
💻 CS
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.Odbc;
namespace HotelHome.user
{
	/// <summary>
	/// user_reserve 的摘要说明。
	/// </summary>
	public class user_reserve : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.DataGrid DataGrid1;
		protected PageControl PageControl1;  //定义自定义控件
		protected DBService dbs=null;
		string resNumber="";
		string sql="";
		private void Page_Load(object sender, System.EventArgs e)
		{
			// 在此处放置用户代码以初始化页面
			//Session["menID"]="aa";
			this.PageControl1.setDataGrid(this.DataGrid1);    //把该页面上的DataGrid给自定义控件PageControl
			this.PageControl1.setPageSize(Convert.ToInt32(System.Configuration.ConfigurationSettings.AppSettings["PageSize"]));                   //规定一个页面显示几条纪录
			
			sql="select a.resID,a.roomID,b.roomType, date_format(a.resStartDate,'%y-%m-%d') resStartDate, " +         //拼sql语句
				"date_format(a.resEndDate,'%y-%m-%d') resEndDate,a.Status,a.resNumber,c.hotelName,c.hotelID, " +
				"d.typename " +
				"from reserve a inner join  guestroom b on a.roomid=b.roomid " +
				"inner join hotel c on c.hotelID=b.hotelID " +
				"inner join roomtype d on b.roomtype=d.typeid " +
				"and b.hotelID=c.hotelID " +
				"and a.MemID='"+Session["memId"]+"'" ;
			this.PageControl1.setSQL(sql);  //把sql语句传给PageControl

//			DbCon conn=new DbCon();
//
//			if (Session["menId"]==null)
//				Response.Write("<script>alert('你还未登陆,请先登陆!');</script>");
//			
//			else
//
//			{
//					
//            
//				DataSet dv=conn.GetDataSet(sql);
//				DataGrid1.DataSource=dv;
//				DataGrid1.DataBind();
//			}
		}

		#region Web 窗体设计器生成的代码
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{    
			this.DataGrid1.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_CancelCommand);
			this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion

		private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
		{
			if(e.Item.ItemType==ListItemType.Item|| e.Item.ItemType==ListItemType.AlternatingItem)
			{
				//HyperLink  linkCancel=(HyperLink)e.Item.Cells[6].Controls[0];   //撤销预定
				LinkButton linkCancel=(LinkButton)e.Item.Cells[6].FindControl("LinkButton1");
				HyperLink  linkHotel=(HyperLink)e.Item.Cells[0].Controls[0];     //酒店名称
				HyperLink  linkRoom=(HyperLink)e.Item.Cells[1].Controls[0];      //客房类型
				linkCancel.Visible=false;    //设置“撤销预定”不可见
				
				

				DataRowView dv=(DataRowView)e.Item.DataItem;      //定义一个数据行视图
				linkHotel.Text=Convert.ToString(dv["hotelname"]);      //把DataGrid的酒店名称和数据库中的hotelName进行绑定
				linkHotel.NavigateUrl="../room/HotelDescQuery.aspx?HotelID="+dv["HotelID"].ToString();  //定义连接,并带HotelID这个参数
				linkRoom.Text=Convert.ToString(dv["typename"]);             //同上
				linkRoom.NavigateUrl="../room/room_Detail.aspx?RoomID="+dv["roomID"].ToString();

				string strStatus;
				int intStatus=Convert.ToInt32(dv["Status"]);
				switch(intStatus)                 //判断客户预定状态,并转向管意思输出
				{
					case 0:
						strStatus="已撤消";
						break;
					case 1:
						strStatus="预订";
						linkCancel.Visible=true;   //当状态为预定时,撤销预定按钮为可见
						break;
					case 2:
						strStatus="已入住";
						break;
					case 3:
						strStatus="已过期";
						break;
					default:
						strStatus="未知";
						break;
				}
				e.Item.Cells[5].Text =strStatus;
			}
		}
		public void Cancel_reserv(object sender,System.EventArgs e)
		{
			
			LinkButton lb=(LinkButton)sender;
			dbs=new DBService();
			String roomID=((DataGridItem)lb.Parent.Parent).Cells[7].Text;
			String resID=((DataGridItem)lb.Parent.Parent).Cells[8].Text;
			if(canCancel(resID))
			{
				OdbcConnection con=dbs.getCon();
				con.Open();
				string updSQL="update inuseroom set inuseNumber=inuseNumber-"+ Convert.ToInt32(resNumber) + " where roomID='"+roomID+"'"; 
				string upd_SQL="update reserve set status='0' where resID='" + resID + "'";
				OdbcCommand com=new OdbcCommand();
				com.Connection=con;
				com.Transaction=con.BeginTransaction();
				com.CommandText=updSQL;
				com.ExecuteNonQuery();
				com.CommandText=upd_SQL;
				com.ExecuteNonQuery();
				com.Transaction.Commit();
				con.Close();

				this.PageControl1.MyDataBind();
//				DataSet dv=dbs.executeBySQL(sql);
//				DataGrid1.DataSource=dv;
//				DataGrid1.DataBind();
			}
			else
			{
				Response.Write("不能撤销预定!");
				return;
			}
						
			
		}
		private bool canCancel(String resID)
		{
			String roomID;
			string selSQL="select roomID,resStartDate,resEndDate,resNumber from reserve where resID='"+resID+"'";
			DataSet dsr=dbs.executeBySQL(selSQL);
			string startDate=dsr.Tables[0].Rows[0][1].ToString();
			string endDate=dsr.Tables[0].Rows[0][2].ToString();
			roomID=dsr.Tables[0].Rows[0][0].ToString();
		    resNumber=dsr.Tables[0].Rows[0][3].ToString();
			TimeSpan ts=DateTime.Parse(endDate)-DateTime.Parse(startDate);
			int days=ts.Days;
			string sel_SQL="select cancelDate from guestroom where roomID='"+roomID+"'";
			DataSet dsg=dbs.executeBySQL(sel_SQL);
			string cancelDate=dsg.Tables[0].Rows[0][0].ToString();
			if(Convert.ToInt32(cancelDate)<days)
			{
				return true;
			}
			else
			{
				return false;
			}
		}
		private void DataGrid1_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
		{
		
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -