2011-11-10 13 views
1

従業員のプロファイル名を持つバインドされたコンボボックスがあります。私は2つのボタンを持っています:保存と削除ボタン。コンボボックスの保存と削除の更新

選択したプロファイルを編集すると、保存されたヒットが自動的にバインドされたコンボボックスに反映されますが、削除または新しいプロファイルを作成するとアプリケーションを終了しなければなりません。バインドされたコンボボックスの変更。

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 

私はいくつかのコードを試してみましたが、誰も私のために働いていません。誰にでもこの小さな問題のコードを教えてもらえますか?

+0

使用するプログラミング言語 – chx

答えて

1

これを正しく実行した場合、レコードを削除すると、データベースで直接レコードが削除されます。ただし、データソース(GeneralInfoBindingDource)を更新していません。私の推測では、新しいアイテムを作成するときに同じ問題があるということです。データベースが更新されるので、データベースからのデータが正しいときに再ロードされます。 (あなたがそれを開くとき)。

データソースを更新する必要があります。

データソースを更新せずにデータベースに変更を書き込むのではなく、データソースを更新するため、保存が機能します。

Me.GeneralInfoBindingSource.EndEdit() 
Me.GeneralInfoTableAdapter.Update(Me.Epmapp_dbDataSet) 
関連する問題