2010-10-05 11 views
3

J'ai un formulaire de saisie de données qui avait plusieurs comboboxes dessus. Chacune des zones de liste déroulante possède sa propre source de liaison et elle se remplit correctement lorsque je lance le formulaire. Cependant, si je modifie l'enregistrement sur le formulaire et essaie de passer à la base de données la valeur sélectionnée mise à jour de la liste déroulante, j'obtiens une erreur que la valeur que je lui passe NULL.Winforms Combobox SelectedValue est nul

Ce problème semble se produire toutes les deux fois que je cours la chose sacrément et je ne peux pas comprendre pourquoi il ne fonctionne pas correctement. Fondamentalement, j'essaie d'insérer un nouvel enregistrement dans une table, mais pour une raison quelconque, il ne parvient pas à tirer ma valeur sélectionnée. Mon code pour insérer les données est ci-dessous:

Data.Manager.AddEmployee 
(
    InactiveEmployeeSelected.GUID, 
    Convert.ToByte(RoleComboBox.SelectedValue), 
    NotesTextBox.Text.Trim(), 
    ScheduleTextBox.Text.Trim(), 
    ExtensionTextBox.Text.Trim(), 
    CodeTextBox.Text.Trim(), 
    Convert.ToBoolean(EBApprovedCheckbox.CheckState), 
    Convert.ToByte(ApprovalLevelComboBox.SelectedValue),  //pulling null 
    Convert.ToBoolean(AssignComtracksCheckbox.CheckState), 
    Security.Manager.CurrentUser.GUID, 
    DateTime.Today, 
    Convert.ToBoolean(IsActiveCheckbox.CheckState) 
); 

Toute aide serait grandement appréciée.

Répondre

6

Utilisez-vous un DropDownStyle de DropDown et en tapant dans le ComboBox? Si oui, cela causera SelectedValue être nul, je suppose que parce que la valeur entrée n'est plus l'un des éléments dans le ComboBox.

Si tel est le cas, définissez DropDownStyle sur DropDownList, en supposant que l'utilisateur doit choisir une valeur existante.

+1

J'ai travaillé pour moi (plus de 5 ans plus tard), la valeur par défaut 'DropDownStyle' est' DropDown', plutôt que 'DropDownList'. Lorsqu'il est défini sur ce dernier, l'utilisateur ne peut pas modifier les options, et je peux obtenir et définir en utilisant la propriété 'SelectedItem'. –

5

ComboBox doit avoir DataSource. Liaison de données par ComboBox1.DataSource