Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何根据我为第一页上的dropdownlist选择的内容更改第二页上的数据库数据?_C#_Asp.net_Session_Drop Down Menu_Webforms - Fatal编程技术网

C# 如何根据我为第一页上的dropdownlist选择的内容更改第二页上的数据库数据?

C# 如何根据我为第一页上的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标题上的房间号将始终更改,因为我将其存

我有两张桌子,叫做“房间”和“时间表”,它们相互关联。目前我只有教室类型。在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.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;
        }