2012-02-29 4 views
0

나는 목록 상자 (이름이 VenueList)를 포함하는 windows 폼을 만들었습니다. 목록 상자는 바인딩 소스 VenuesBindingSource에 의해 제공된 목록에서 해당 값을 가져오고 값의 ID와 텍스트 이름을 가져옵니다.대화 상자의 결과로 다른 폼의 컨트롤 업데이트

새로운 장소에 대해 데이터베이스에 저장할 값을 묻는 DialogBox가 표시되는 버튼이 있습니다. 값이 채워지고 데이터베이스를 삽입하면 대화 상자가 닫히고 호출 된 원래 폼으로 돌아갑니다.

그러나 목록을 업데이트하는 대신. 목록은 그대로 유지됩니다. 그러나 양식을 닫았다가 다시 열면 새로운 값이 추가 된 것을 알 수 있습니다. 위의 코드에서

TournamentSettings.VenuesTableAdapter.InsertVenueQuery(Trim(VenueNameTxt.Text), Trim(VenueAddress1Txt.Text), Trim(VenueAddress2Txt.Text), Trim(VenueCityTxt.Text), Trim(VenueProvinceTxt.Text), Trim(VenueZipTxt.Text), Trim(CountryBox.SelectedValue), Trim(VenuePhoneNo.Text), VenueType.SelectedText, VenueWebAddress) 
    TournamentSettings.VenuesTableAdapter.Fill(TournamentSettings.VenueNameList.Venues) 
  • , InsertVenueQuery 부하에 콤보 상자를 채우는 데 사용되는 TableAdapter에 VenuesTableAdapter에 값을 추가하기 위해 호출하는 디자이너에서 쿼리의 이름입니다. 또한 Fill 명령을 보내 테이블에 새 값을 다시 채 웁니다.

그래서 테이블 어댑터를 공급하고 데이터 테이블에 채우기 명령을 보내는 것보다 다른 방법으로해야할까요? 아니면 여기에 나와 있지 않은 무언가가 그 가치를 목록에 넣어야합니다. 나는 디자이너의 외부에서 모든 것을 다시하고 싶은데, 기본적으로 두 개의 명령 (하나는 데이터를 삽입하고 다른 하나는 @@ IDENTITY 값을 얻기 위해 액세스 데이터베이스에서 실행되기 때문에 많은 코드가 필요하다.)

+0

이 Windows Forms, Web Forms, WPF 또는 무엇입니까? –

+0

이것은 Windows Form입니다. (나는 이미 질문에 그것을 게시했다고 생각합니다.) –

답변

0

오케이. 이 순간 나는 잠시 생각해야했다.

로드 이벤트에서 차단 된 블록을 만드는 대신, 대신 "FillVenueList"라는 하위 함수를 만들었습니다.

나는 다음과 같은 코드 블록을 사용 : 거기에서

Public Sub FillVenueList() 
    ' Adding values from database to a datatable. 
    ' From there will add to the list box. 
    Dim VenueConnection As New OleDb.OleDbConnection(DBconnection) 
    VenueConnection.Open() 
    Dim VenueConnectionQuery As New OleDb.OleDbCommand("SELECT VenueID, VenueName FROM Venues", VenueConnection) 
    Dim VenueDataAdapter As New OleDb.OleDbDataAdapter(VenueConnectionQuery) 
    Dim VenueDataSet As New DataSet 
    VenueDataAdapter.Fill(VenueDataSet, "Venues") 

    TrnVenueLst.DataSource = VenueDataSet.Tables("Venues") 
    TrnVenueLst.DisplayMember = "VenueName" 
    TrnVenueLst.ValueMember = "VenueID" 
    VenueConnection.Close() 
End Sub 

I 양식 및 추가 장소 창 모두에서이 하위 전화를 내가 안전하게 작동하는지 확인할 수 있습니다. 따라서 폼에 새로운 값을 얻는 방법인데,로드 이벤트의 일부로 사용하지 말고로드 이벤트 블록에서 호출 한 다음 목록에 추가 할 때 호출하십시오.