私の vb.net プロジェクトには、3 つのフォームがあります。home_mdi
、Viewfrm
およびAddDatafrm
。
Viewfrm
その上に UltraWinGrid があり、いくつかのデータを表示しています。add data
ボタンをクリックするとAddDatafrm
開きます。データが保存されると、フォームは閉じます。この時点で、UltraWinGrid をオンViewfrm
にして、追加したデータを更新/更新して表示します。現時点では、閉じ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