C# 如何根据我为第一页上的dropdownlist选择的内容更改第二页上的数据库数据?
我有两张桌子,叫做“房间”和“时间表”,它们相互关联。目前我只有教室类型。在mainmenu.aspx的第一个下拉列表中单击“演讲”后,第二个下拉列表将填充属于演讲的任何房间 问题是,无论我点击哪个房间,无论是L338、L339还是L340,它都会在时间表上给我相同的输出数据。(使用daypilot控件输出)我想要实现的输出是,L338只会出来讲网络数据,L339只会出来讲英语数据,L340将发表关于中国数据的演讲。(见数据库数据) number2.aspx标题上的房间号将始终更改,因为我将其存储在mainmenu.aspx second dropdownlist的会话中,这就是房间号始终更改的原因。但我不知道如何根据我选择的房间号使数据始终更改。帮助PPPP pls 房间表以及与日程表的关系 时间表表 主菜单.aspx L338的number2.aspx L339的number2.aspx main menu.aspxC# 如何根据我为第一页上的dropdownlist选择的内容更改第二页上的数据库数据?,c#,asp.net,session,drop-down-menu,webforms,C#,Asp.net,Session,Drop Down Menu,Webforms,我有两张桌子,叫做“房间”和“时间表”,它们相互关联。目前我只有教室类型。在mainmenu.aspx的第一个下拉列表中单击“演讲”后,第二个下拉列表将填充属于演讲的任何房间 问题是,无论我点击哪个房间,无论是L338、L339还是L340,它都会在时间表上给我相同的输出数据。(使用daypilot控件输出)我想要实现的输出是,L338只会出来讲网络数据,L339只会出来讲英语数据,L340将发表关于中国数据的演讲。(见数据库数据) number2.aspx标题上的房间号将始终更改,因为我将其存
public partial class MainMenu : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string constr = ConfigurationManager.ConnectionStrings["projectConnectionString"].ToString(); // connection string
SqlConnection con = new SqlConnection(constr);
con.Open();
SqlCommand com = new SqlCommand("select distinct ROOM_TYPE from ROOM", con);
SqlDataAdapter da = new SqlDataAdapter(com);
DataSet ds = new DataSet();
da.Fill(ds); // fill dataset
ddlRoomType.DataTextField = ds.Tables[0].Columns["ROOM_TYPE"].ToString(); // text field name of table dispalyed in dropdown
// to retrive specific textfield name
ddlRoomType.DataSource = ds.Tables[0]; //assigning datasource to the dropdownlist
ddlRoomType.DataBind(); //binding dropdownlist
ddlRoomType.Items.Insert(0, new ListItem(" Select type", "0"));
}
ddlRoom.Items.Insert(0, new ListItem(" Select room", "0"));
}
protected void ddlRoomType_SelectedIndexChanged(object sender, EventArgs e)
{
string constr = ConfigurationManager.ConnectionStrings["projectConnectionString"].ToString(); // connection string
SqlConnection con = new SqlConnection(constr);
con.Open();
SqlCommand com = new SqlCommand("select distinct ROOM_CODE from Room where ROOM_TYPE='" + ddlRoomType.SelectedValue.ToString() + "'", con);
SqlDataAdapter da = new SqlDataAdapter(com);
DataSet ds = new DataSet();
da.Fill(ds); // fill dataset
ddlRoom.DataTextField = ds.Tables[0].Columns["ROOM_CODE"].ToString(); // text field name of table dispalyed in dropdown
// to retrive specific textfield name
ddlRoom.DataSource = ds.Tables[0]; //assigning datasource to the dropdownlist
ddlRoom.DataBind(); //binding dropdownlist
ddlRoom.Items.Insert(0, new ListItem(" Select room", "0"));
}
protected void ddlRoom_SelectedIndexChanged(object sender, EventArgs e)
{
Session["roomvalue"] = ddlRoom.SelectedValue;
Response.Redirect("number2.aspx");
}
}
protected void Page_Load(object sender, EventArgs e)
{
lblVenue.Text = Session["roomvalue"] != null ? Session["roomvalue"].ToString() : "";
if (!IsPostBack)
{
DayPilotCalendar1.StartDate = DayPilot.Utils.Week.FirstWorkingDayOfWeek(new DateTime(2014, 04, 03));
//DayPilotCalendar1.StartDate = DayPilot.Utils.Week.FirstWorkingDayOfWeek(DateTime.Now.AddDays(-(int)DateTime.Now.DayOfWeek).Date);
DayPilotCalendar1.DataSource = dbGetEvents(DayPilotCalendar1.StartDate, DayPilotCalendar1.Days);
DataBind();
}
}
private DataTable dbGetEvents(DateTime start, int days)
{
string constr = ConfigurationManager.ConnectionStrings["ProjectConnectionString"].ConnectionString;
SqlDataAdapter da = new SqlDataAdapter("SELECT ID, PURPOSE, [START_DATE], [END_DATE], [START_TIME], [END_TIME] FROM [Schedule]", constr);
da.SelectCommand.Parameters.AddWithValue("start", start);
da.SelectCommand.Parameters.AddWithValue("end", start.AddDays(days));
DataTable dt = new DataTable();
da.Fill(dt);
for (int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["START_DATE"] = CombineDateAndTime(dt.Rows[i]["START_DATE"], dt.Rows[i]["START_TIME"]);
dt.Rows[i]["END_DATE"] = CombineDateAndTime(dt.Rows[i]["END_DATE"], dt.Rows[i]["END_TIME"]);
}
return dt;
}
public static DateTime CombineDateAndTime(object date, object time)
{
if (date == null)
{
// Add some logic for this scenario. Here are 2 examples:
//throw new ArgumentNullException("date");
//date = DateTime.MaxValue;
}
if (time == null)
{
// Add some logic for this scenario.
//throw new ArgumentNullException("time");
//time = 0;
}
DateTime dt = Convert.ToDateTime(date);
float hoursAndMinutes = Convert.ToInt32(time);
return CombineDateAndTime(dt, hoursAndMinutes);
}
public static DateTime CombineDateAndTime(DateTime date, float time)
{
int hours = Convert.ToInt32(Math.Round((decimal)time / 100, MidpointRounding.AwayFromZero));
float remainder = time - (hours * 100);
int minutes = Convert.ToInt32(Math.Round((decimal)remainder, MidpointRounding.AwayFromZero));
DateTime returnDate = date.Date.AddHours(hours).AddMinutes(minutes);
return returnDate;
}
}
Number2.aspx
public partial class MainMenu : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string constr = ConfigurationManager.ConnectionStrings["projectConnectionString"].ToString(); // connection string
SqlConnection con = new SqlConnection(constr);
con.Open();
SqlCommand com = new SqlCommand("select distinct ROOM_TYPE from ROOM", con);
SqlDataAdapter da = new SqlDataAdapter(com);
DataSet ds = new DataSet();
da.Fill(ds); // fill dataset
ddlRoomType.DataTextField = ds.Tables[0].Columns["ROOM_TYPE"].ToString(); // text field name of table dispalyed in dropdown
// to retrive specific textfield name
ddlRoomType.DataSource = ds.Tables[0]; //assigning datasource to the dropdownlist
ddlRoomType.DataBind(); //binding dropdownlist
ddlRoomType.Items.Insert(0, new ListItem(" Select type", "0"));
}
ddlRoom.Items.Insert(0, new ListItem(" Select room", "0"));
}
protected void ddlRoomType_SelectedIndexChanged(object sender, EventArgs e)
{
string constr = ConfigurationManager.ConnectionStrings["projectConnectionString"].ToString(); // connection string
SqlConnection con = new SqlConnection(constr);
con.Open();
SqlCommand com = new SqlCommand("select distinct ROOM_CODE from Room where ROOM_TYPE='" + ddlRoomType.SelectedValue.ToString() + "'", con);
SqlDataAdapter da = new SqlDataAdapter(com);
DataSet ds = new DataSet();
da.Fill(ds); // fill dataset
ddlRoom.DataTextField = ds.Tables[0].Columns["ROOM_CODE"].ToString(); // text field name of table dispalyed in dropdown
// to retrive specific textfield name
ddlRoom.DataSource = ds.Tables[0]; //assigning datasource to the dropdownlist
ddlRoom.DataBind(); //binding dropdownlist
ddlRoom.Items.Insert(0, new ListItem(" Select room", "0"));
}
protected void ddlRoom_SelectedIndexChanged(object sender, EventArgs e)
{
Session["roomvalue"] = ddlRoom.SelectedValue;
Response.Redirect("number2.aspx");
}
}
protected void Page_Load(object sender, EventArgs e)
{
lblVenue.Text = Session["roomvalue"] != null ? Session["roomvalue"].ToString() : "";
if (!IsPostBack)
{
DayPilotCalendar1.StartDate = DayPilot.Utils.Week.FirstWorkingDayOfWeek(new DateTime(2014, 04, 03));
//DayPilotCalendar1.StartDate = DayPilot.Utils.Week.FirstWorkingDayOfWeek(DateTime.Now.AddDays(-(int)DateTime.Now.DayOfWeek).Date);
DayPilotCalendar1.DataSource = dbGetEvents(DayPilotCalendar1.StartDate, DayPilotCalendar1.Days);
DataBind();
}
}
private DataTable dbGetEvents(DateTime start, int days)
{
string constr = ConfigurationManager.ConnectionStrings["ProjectConnectionString"].ConnectionString;
SqlDataAdapter da = new SqlDataAdapter("SELECT ID, PURPOSE, [START_DATE], [END_DATE], [START_TIME], [END_TIME] FROM [Schedule]", constr);
da.SelectCommand.Parameters.AddWithValue("start", start);
da.SelectCommand.Parameters.AddWithValue("end", start.AddDays(days));
DataTable dt = new DataTable();
da.Fill(dt);
for (int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["START_DATE"] = CombineDateAndTime(dt.Rows[i]["START_DATE"], dt.Rows[i]["START_TIME"]);
dt.Rows[i]["END_DATE"] = CombineDateAndTime(dt.Rows[i]["END_DATE"], dt.Rows[i]["END_TIME"]);
}
return dt;
}
public static DateTime CombineDateAndTime(object date, object time)
{
if (date == null)
{
// Add some logic for this scenario. Here are 2 examples:
//throw new ArgumentNullException("date");
//date = DateTime.MaxValue;
}
if (time == null)
{
// Add some logic for this scenario.
//throw new ArgumentNullException("time");
//time = 0;
}
DateTime dt = Convert.ToDateTime(date);
float hoursAndMinutes = Convert.ToInt32(time);
return CombineDateAndTime(dt, hoursAndMinutes);
}
public static DateTime CombineDateAndTime(DateTime date, float time)
{
int hours = Convert.ToInt32(Math.Round((decimal)time / 100, MidpointRounding.AwayFromZero));
float remainder = time - (hours * 100);
int minutes = Convert.ToInt32(Math.Round((decimal)remainder, MidpointRounding.AwayFromZero));
DateTime returnDate = date.Date.AddHours(hours).AddMinutes(minutes);
return returnDate;
}
}
受保护的无效页面加载(对象发送方,事件参数e)
{
lblVenue.Text=Session[“roomvalue”]!=null?Session[“roomvalue”]。ToString():“”;
如果(!IsPostBack)
{
DayPilotCalendar1.StartDate=DayPilot.Utils.Week.FirstWorkingDayOfWeek(新日期时间(2014年4月3日));
//DayPilotCalendar1.StartDate=DayPilot.Utils.Week.FirstWorkingDayOfWeek(DateTime.Now.AddDays(-(int)DateTime.Now.DayOfWeek.Date);
DayPilotCalendar1.DataSource=dbGetEvents(DayPilotCalendar1.StartDate,DayPilotCalendar1.Days);
数据绑定();
}
}
私有数据表dbGetEvents(日期时间开始,整数天)
{
string constr=ConfigurationManager.ConnectionString[“ProjectConnectionString”].ConnectionString;
SqlDataAdapter da=new SqlDataAdapter(“从[Schedule]”中选择ID、目的、[START\u DATE]、[END\u DATE]、[START\u TIME]、[END\u TIME],constr”);
da.SelectCommand.Parameters.AddWithValue(“开始”,开始);
da.SelectCommand.Parameters.AddWithValue(“end”,start.AddDays(days));
DataTable dt=新的DataTable();
da.填充(dt);
对于(int i=0;i
遵循@Trafz建议
我右键单击“执行查询”后,它会弹出此对话框。我猜这一定是L338、L339或L340的值?我输入了L338并单击“确定”。
没有数据出来。我还尝试在返回dt上放置调试点;行下的计数为0
public partial class number2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
lblVenue.Text = Session["roomvalue"] != null ? Session["roomvalue"].ToString() : "";
if (!IsPostBack)
{
DayPilotCalendar1.StartDate = DayPilot.Utils.Week.FirstWorkingDayOfWeek(new DateTime(2014, 04, 03));
//DayPilotCalendar1.StartDate = DayPilot.Utils.Week.FirstWorkingDayOfWeek(DateTime.Now.AddDays(-(int)DateTime.Now.DayOfWeek).Date);
DayPilotCalendar1.DataSource = dbGetEvents(DayPilotCalendar1.StartDate, DayPilotCalendar1.Days, lblVenue.Text);
DataBind();
}
}
private DataTable dbGetEvents(DateTime start, int days, string roomValue)
{
if (string.IsNullOrWhiteSpace(roomValue))
throw new ArgumentNullException("roomValue");
const string sql = @"
SELECT
s.ID,
PURPOSE,
[START_DATE],
[END_DATE],
[START_TIME],
[END_TIME]
FROM [Schedule] s
JOIN [room] r ON r.ROOM_CODE = s.ROOM_CODE
WHERE r.ROOM_TYPE = @SelectedRoomType";
string constr = ConfigurationManager.ConnectionStrings["ProjectConnectionString"].ConnectionString;
SqlDataAdapter da = new SqlDataAdapter(sql, constr);
da.SelectCommand.Parameters.AddWithValue("@SelectedRoomType", roomValue);
da.SelectCommand.Parameters.AddWithValue("start", start);
da.SelectCommand.Parameters.AddWithValue("end", start.AddDays(days));
DataTable dt = new DataTable();
da.Fill(dt);
for (int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["START_DATE"] = CombineDateAndTime(dt.Rows[i]["START_DATE"], dt.Rows[i]["START_TIME"]);
dt.Rows[i]["END_DATE"] = CombineDateAndTime(dt.Rows[i]["END_DATE"], dt.Rows[i]["END_TIME"]);
}
return dt;
}
public static DateTime CombineDateAndTime(object date, object time)
{
if (date == null)
{
// Add some logic for this scenario. Here are 2 examples:
//throw new ArgumentNullException("date");
//date = DateTime.MaxValue;
}
if (time == null)
{
// Add some logic for this scenario.
//throw new ArgumentNullException("time");
//time = 0;
}
DateTime dt = Convert.ToDateTime(date);
float hoursAndMinutes = Convert.ToInt32(time);
return CombineDateAndTime(dt, hoursAndMinutes);
}
public static DateTime CombineDateAndTime(DateTime date, float time)
{
int hours = Convert.ToInt32(Math.Round((decimal)time / 100, MidpointRounding.AwayFromZero));
float remainder = time - (hours * 100);
int minutes = Convert.ToInt32(Math.Round((decimal)remainder, MidpointRounding.AwayFromZero));
DateTime returnDate = date.Date.AddHours(hours).AddMinutes(minutes);
return returnDate;
}
}
从[Schedule]s中选择*加入[room]r上的r.room\u代码=s.room\u代码
当前代码
public partial class number2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
lblVenue.Text = Session["roomvalue"] != null ? Session["roomvalue"].ToString() : "";
if (!IsPostBack)
{
DayPilotCalendar1.StartDate = DayPilot.Utils.Week.FirstWorkingDayOfWeek(new DateTime(2014, 04, 03));
//DayPilotCalendar1.StartDate = DayPilot.Utils.Week.FirstWorkingDayOfWeek(DateTime.Now.AddDays(-(int)DateTime.Now.DayOfWeek).Date);
DayPilotCalendar1.DataSource = dbGetEvents(DayPilotCalendar1.StartDate, DayPilotCalendar1.Days, lblVenue.Text);
DataBind();
}
}
private DataTable dbGetEvents(DateTime start, int days, string roomValue)
{
if (string.IsNullOrWhiteSpace(roomValue))
throw new ArgumentNullException("roomValue");
const string sql = @"
SELECT
s.ID,
PURPOSE,
[START_DATE],
[END_DATE],
[START_TIME],
[END_TIME]
FROM [Schedule] s
JOIN [room] r ON r.ROOM_CODE = s.ROOM_CODE
WHERE r.ROOM_TYPE = @SelectedRoomType";
string constr = ConfigurationManager.ConnectionStrings["ProjectConnectionString"].ConnectionString;
SqlDataAdapter da = new SqlDataAdapter(sql, constr);
da.SelectCommand.Parameters.AddWithValue("@SelectedRoomType", roomValue);
da.SelectCommand.Parameters.AddWithValue("start", start);
da.SelectCommand.Parameters.AddWithValue("end", start.AddDays(days));
DataTable dt = new DataTable();
da.Fill(dt);
for (int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["START_DATE"] = CombineDateAndTime(dt.Rows[i]["START_DATE"], dt.Rows[i]["START_TIME"]);
dt.Rows[i]["END_DATE"] = CombineDateAndTime(dt.Rows[i]["END_DATE"], dt.Rows[i]["END_TIME"]);
}
return dt;
}
public static DateTime CombineDateAndTime(object date, object time)
{
if (date == null)
{
// Add some logic for this scenario. Here are 2 examples:
//throw new ArgumentNullException("date");
//date = DateTime.MaxValue;
}
if (time == null)
{
// Add some logic for this scenario.
//throw new ArgumentNullException("time");
//time = 0;
}
DateTime dt = Convert.ToDateTime(date);
float hoursAndMinutes = Convert.ToInt32(time);
return CombineDateAndTime(dt, hoursAndMinutes);
}
public static DateTime CombineDateAndTime(DateTime date, float time)
{
int hours = Convert.ToInt32(Math.Round((decimal)time / 100, MidpointRounding.AwayFromZero));
float remainder = time - (hours * 100);
int minutes = Convert.ToInt32(Math.Round((decimal)remainder, MidpointRounding.AwayFromZero));
DateTime returnDate = date.Date.AddHours(hours).AddMinutes(minutes);
return returnDate;
}
}
公共部分类编号2:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{
lblVenue.Text=Session[“roomvalue”]!=null?Session[“roomvalue”]。ToString():“”;
如果(!IsPostBack)
{
DayPilotCalendar1.StartDate=DayPilot.Utils.Week.FirstWorkingDayOfWeek(新日期时间(2014年4月3日));
//DayPilotCalendar1.StartDate=DayPilot.Utils.Week.FirstWorkingDayOfWeek(DateTime.Now.AddDays(-(int)DateTime.Now.DayOfWeek.Date);
DayPilotCalendar1.DataSource=dbGetEvents(DayPilotCalendar1.StartDate,DayPilotCalendar1.Days,lblVenue.Text);
数据绑定();
}
}
私有数据表dbGetEvents(日期时间开始、整数天、字符串roomValue)
{
if(string.IsNullOrWhiteSpace(roomValue))
抛出新ArgumentNullException(“roomValue”);
常量字符串sql=@“
挑选
s、 身份证,
目的,,
[开始日期],
[结束日期],
[开始时间],
[结束时间]
自[附表]s
在r.room\U代码=s.room\U代码上加入[room]r
其中r.ROOM_TYPE=@SelectedRoomType”;
string constr=ConfigurationManager.ConnectionString[“ProjectConnectionString”].ConnectionString;
SqlDataAdapter da=新的SqlDataAdapter(sql,constr);
da.SelectCommand.Parameters.AddWithValue(“@SelectedRoomType”,roomValue);
da.SelectCommand.Parameters.AddWithValue(“开始”,开始);
da.SelectCommand.Parameters.AddWithValue(“end”,start.AddDays(days));
DataTable dt=新的DataTable();
da.填充(dt);
对于(int i=0;iWHERE [rooms].ROOM_CODE = Session["roomvalue"]
WHERE [rooms].ROOM_CODE = @SelectedRoomCode
SqlDataAdapter da = new SqlDataAdapter(sql, constr);
da.SelectCommand.Parameters.AddWithValue("@SelectedRoomCode", roomValue);
if (string.IsNullOrWhiteSpace(roomValue))
throw new ArgumentNullException("roomValue");
protected void Page_Load(object sender, EventArgs e)
{
lblVenue.Text = Session["roomvalue"] != null ? Session["roomvalue"].ToString() : "";
if (!IsPostBack)
{
DayPilotCalendar1.StartDate = DayPilot.Utils.Week.FirstWorkingDayOfWeek(new DateTime(2014, 04, 03));
//DayPilotCalendar1.StartDate = DayPilot.Utils.Week.FirstWorkingDayOfWeek(DateTime.Now.AddDays(-(int)DateTime.Now.DayOfWeek).Date);
DayPilotCalendar1.DataSource = dbGetEvents(DayPilotCalendar1.StartDate, DayPilotCalendar1.Days, lblVenue.Text);
DataBind();
}
}
private DataTable dbGetEvents(DateTime start, int days, string roomValue)
{
if (string.IsNullOrWhiteSpace(roomValue))
throw new ArgumentNullException("roomValue");
const string sql = @"
SELECT
s.ID,
PURPOSE,
[START_DATE],
[END_DATE],
[START_TIME],
[END_TIME]
FROM [Schedule] s
JOIN [rooms] r ON r.ROOM_CODE = s.ROOM_CODE
WHERE r.ROOM_CODE = @SelectedRoomCode";
string constr = ConfigurationManager.ConnectionStrings["ProjectConnectionString"].ConnectionString;
SqlDataAdapter da = new SqlDataAdapter(sql, constr);
da.SelectCommand.Parameters.AddWithValue("@SelectedRoomCode", roomValue);
da.SelectCommand.Parameters.AddWithValue("start", start);
da.SelectCommand.Parameters.AddWithValue("end", start.AddDays(days));
DataTable dt = new DataTable();
da.Fill(dt);
for (int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["START_DATE"] = CombineDateAndTime(dt.Rows[i]["START_DATE"], dt.Rows[i]["START_TIME"]);
dt.Rows[i]["END_DATE"] = CombineDateAndTime(dt.Rows[i]["END_DATE"], dt.Rows[i]["END_TIME"]);
}
return dt;
}