📄 user_reserve.aspx.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 + -