我有两种表单:RoomSelect
和RoomActiveSessions
。
RoomSelect
表单包含listbox(listbox1)和一个按钮(button1)。列表框绑定到名为“Room
”的本地数据库表,并显示4个不同的房间号。
房间桌
(PK)RoomID RoomName
CMP2001 room 1
MB20312 room 2
FR45312 room 3
TRY2233 room 4
RoomID用作另一个表Sessions
(PK)sessionID (FK)roomID sessionStartDate sessionTimeStart sessionTimeEnd
1ACMP2343 CMP2001 09/05/2013 12:00 AM 14:00 PM
2ACMP2343 MB20312 05/05/2013 09:00 AM 11:00 PM
1ACMP3456 TRY2233 15/05/2013 12:00 AM 13:00 PM
2ACMP3456 CMP2001 01/05/2013 10:00 AM 13:00 PM
1ABIO3422 MB20312 30/04/2013 11:00 AM 13:00 PM
2ABIO3422 CMP2001 01/04/2013 14:00 AM 16:00 PM
1ABIO2217 FR45312 12/05/2013 16:00 AM 18:00 PM
2ABIO2217 MB20312 03/05/2013 12:00 AM 14:00 PM
RoomActiveSession
表单包含dataGridView,我想在其中显示结果。
该过程应如下所示:
RoomSelect
上的用户启动应用程序。RoomSelect
表单关闭,RoomActiveSession
打开,显示给定房间号的当前会话我认为要实现这一点,我需要在数据库上运行查询时使用列表框中的值作为参数,但我不知道如何访问它。当我试图得到它时:
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
MessageBox.Show(listBox1.SelectedItem.ToString());
}
我得到System.Data.RowView,而不是DB的值。
我很感激我的问题帮助
编辑:
还有一个问题。如何在突出显示房间号码并在RoomSelect
表单上单击“确定”后打开新表单?
答案 0 :(得分:0)
如果你得到的是DataRowView
,请执行以下操作:
if (listBox1.SelectedItem is DataRowView)
{
DataRowView drv = (DataRowView)listBox1.SelectedItem;
String s = drv["RoomID"] as String;
if (!String.IsNullOrEmpty(s))
MessageBox.Show(s);
}
或许,您的目标有点冗长,但仅仅是为了展示SelectedItem
属性中的真实内容。