2013-08-05 1 views
0

2 가지 형식이 있습니다 : RoomSelectRoomActiveSessions입니다.목록 상자에서 항목을 선택하면 쿼리 결과를 새로운 형식으로 표시합니다.

RoomSelect 양식에는 목록 상자 (listbox1)와 버튼 (button1)이 있습니다. 목록 상자는 "Room"이라는 로컬 데이터베이스 테이블에 바인드되며 4 개의 다른 회의실 번호를 표시합니다.

(PK)RoomID RoomName 
CMP2001  room 1 
MB20312  room 2 
FR45312  room 3 
TRY2233  room 4 

RoomID이 aother 테이블의 외래 키로 사용되는

룸 테이블, 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에의 포함되어 있습니다.

과정은 다음과 같아야합니다

  1. 사용자가 양식 RoomSelect에 응용 프로그램을 시작합니다.
  2. 사용자가 회의실 번호를 선택하고 확인을 클릭합니다.
  3. RoomSelect 형태가 닫히고 RoomActiveSession

나는 데이터베이스에 쿼리를 실행할 때 내가 매개 변수로 목록 상자에서 값을 사용하기 위해 필요한이를 달성하는 것을 가정 주어진 방 번호 표시 현재 세션이 열립니다 , 그러나 나는 그것에 접근하는 방법을 모른다. 내가 함께하려고 할 때 :

private void listBox1_SelectedIndexChanged(object sender, EventArgs e) 
     { 

      MessageBox.Show(listBox1.SelectedItem.ToString()); 
     } 

나는 DB로부터의 값이 아니라 System.Data.RowView를 얻는다.

하나 더 질문 :

나는 내 문제를

편집을 어떤 도움을 주셔서 감사합니다. 방 번호를 강조 표시하고 RoomSelect 양식에서 확인을 클릭 한 후 새 양식을 열려면 어떻게해야합니까? 당신이 얻고있는 DataRowView을의 경우

답변

0

, 다음을 수행하십시오

if (listBox1.SelectedItem is DataRowView) 
{ 
    DataRowView drv = (DataRowView)listBox1.SelectedItem; 
    String s = drv["RoomID"] as String; 
    if (!String.IsNullOrEmpty(s)) 
     MessageBox.Show(s); 
} 

비트 자세한 당신의 목표를 위해, 아마,하지만 그냥 SelectedItem 속성에 정말 무엇을 보여주는.

관련 문제