在保存和删除时更新Combobox

时间:2011-11-10 17:49:17

标签: vb.net combobox

我有一个带有员工个人资料名称的绑定组合框。我有两个按钮:保存和删除按钮。

当我编辑选定的配置文件时,我点击保存并自动将更改反映在绑定的组合框中,但当我点击删除或创建新配置文件时,我必须关闭应用程序,当我打开它时,我看到更改在绑定的组合框中。

combobox.Refresh()没有工作

这是我的代码:

Private Sub deleteselectedprofile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_deleteprofile_oninsideprofiledittap1.Click
    Dim mconn As New SqlConnection("Data Source=(local);Initial Catalog=epmapp_db;Integrated Security=true;")
    Dim cmd As New SqlCommand
    cmd.Connection = mconn
    cmd.CommandType = CommandType.Text
    cmd.CommandText = "delete GeneralInfo where RecordId= " + cbox_profiles.SelectedValue.ToString

    Try
        If MessageBox.Show("¿Está seguro de querer borrar este perfil?", _
        "Delete", MessageBoxButtons.YesNo, _
        MessageBoxIcon.Warning) = DialogResult.No Then
            mconn.Close()
            MsgBox("Operación Cancelada")
        Else
            mconn.Open()
            cmd.ExecuteNonQuery()
            MessageBox.Show("Su perfil se ha actualizado exitosamete")
            Clear_Form_tap1()
            disabling_controlstap1()
            btn_newprofile_onload_tap1.Visible = True
            btn_saveprofile_oninside_profileedit_tap1.Visible = False
            btn_editprofile_oncboxselectiontap1.Visible = False
            btn_cancelprofileedit_onprofileselectiontap1.Visible = False
            btn_deleteprofile_oninsideprofiledittap1.Visible = False
            cbox_profiles.Enabled = True
            ErrorProvider1.Clear()

        End If

    Catch ex As Exception
        MessageBox.Show(ex.Message)
    Finally
        mconn.Close()
    End Try

End Sub

我使用...

在设计标签中设置我的组合框
Combo Box Task
Use Data Bound Items
Data Binding Mode
Data Source = GeneralInfoBindingDource
Display  Member = Nombre
Value Member = RecordId
Selected Value = none

我的保存按钮代码......

Private Sub btn_saveprofile_oninside_profileedit_tap1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_saveprofile_oninside_profileedit_tap1.Click

    Me.Validate()
    Me.GeneralInfoBindingSource.EndEdit()
    Me.GeneralInfoTableAdapter.Update(Me.Epmapp_dbDataSet)
    Try
        MessageBox.Show("Su perfil ha actualizado exitosamete")
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
    Clear_Form_tap1()
    disabling_controlstap1()
    btn_saveprofile_oninside_profileedit_tap1.Visible = False
    btn_cancelprofileedit_onprofileselectiontap1.Visible = False
    btn_deleteprofile_oninsideprofiledittap1.Visible = False
    btn_editprofile_oncboxselectiontap1.Visible = False
    btn_newprofile_onload_tap1.Visible = True
    cbox_profiles.Enabled = True
    ErrorProvider1.Clear()

End Sub

我尝试了几个代码,但没有一个适用于我。任何人都可以帮我解决这个小问题的代码吗?

1 个答案:

答案 0 :(得分:1)

如果我正确地遵循了这一点,当您删除记录时,您直接在数据库中执行此操作。但是,您没有更新数据源(GeneralInfoBindingDource)。我猜你创建一个新项目时会遇到同样的问题。数据库已更新,因此当它从数据库重新加载数据时它是正确的。 (当你重新打开它时)。

您需要更新数据源。

您的保存是有效的,因为您正在更新数据源,而不是在不更新数据库的情况下将更改写入数据库。

Me.GeneralInfoBindingSource.EndEdit()
Me.GeneralInfoTableAdapter.Update(Me.Epmapp_dbDataSet)