在我的vb.net項目中,我有3種形式。 home_mdi
,Viewfrm
和AddDatafrm
。UltraWinGrid自動刷新
Viewfrm
上面有一個UltraWinGrid,它正在顯示一些數據。當我點擊add data
按鈕時,AddDatafrm
打開。數據保存後,表單將關閉。 此時,我想要Viewfrm
上的UltraWinGrid更新/刷新並顯示我添加的數據。目前,它不顯示它,直到我關閉Viewfrm
,然後再次打開它。
圖片顯示了這一點。 (數據根本不存在開始,然後將其添加並沒有出現,最終的圖像顯示的是新的數據形式,我已經重新開放後。
我如何改變這種
當前代碼:
,打開添加形式
Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
Using fp = New frmAddData(Globals.m_database)
If fp.ShowDialog() = DialogResult.OK Then
ugData.DataSource = Nothing
getPeople()
End If
End Using
End Sub
要保存輸入的信息(添加表格)
Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
Dim m_cn As New OleDbConnection
m_cn = Globals.m_database.getConnection()
If txtFirstName.Text = "" Then
MsgBox("First name cannot be blank")
ElseIf txtLastName.Text = "" Then
MsgBox("Last name cannot be blank")
ElseIf txtAge.Text = "" Then
MsgBox("Age cannot be blank")
ElseIf txtPostCode.Text = "" Then
MsgBox("Postcode cannot be blank")
Else
Dim personID As Integer = database.SaveNewPerson(txtFirstName.Text, txtLastName.Text, txtAge.Text, txtPostCode.Text, m_cn)
MsgBox("Save successful")
txtFirstName.Text = ""
txtLastName.Text = ""
txtAge.Text = ""
txtPostCode.Text = ""
Globals.savedValue = True
Me.Close()
End If
End Sub
調用來加載,查看錶單上的數據庫:
Public Sub getPeople()
Try
Dim sql As String = "SELECT * FROM tblPerson ORDER BY [personID] ASC;"
Dim cm As New OleDbCommand(sql, Globals.m_database.getConnection())
Dim da As New OleDbDataAdapter(cm)
Dim dt As New DataTable()
da.Fill(dt)
ugData.DataSource = dt
Catch Ex As Exception
mdi1.errorLog(Ex.Message, Ex.StackTrace)
MsgBox("Failed to retrieve data, refer to error log")
End Try
End Sub
什麼是錯的在2天前我給你的那個人? – Steve
@Steve這是因爲你使用了「使用fp作爲新的frmAddData」語句,它會自動用'frmView'打開'AddData'表單,而我最初只想打開'frmView',但要刷新數據保存表格關閉 – David
該代碼應該進入frmView中按鈕添加的事件處理程序中。你把它放在哪裏? – Steve