在ComboBox中绑定NULL空项如何在绑定的ComboBox中有一个空项,它使用NULL作为插入或更新的值?使用下面的代码,我可以手动添加额外的行。列inspector_id是FK关系的主键。我必须设置inspector_id=-1因为C#不允许int为null。但是,插入(或更新)失败,因为数据库中没有inspector_id:-1。privatevoidItemInfo_Load(objectsender,EventArgse){//TODO:这行代码将数据加载到“someDBDataSet.inspector”表中。您可以根据需要移动或删除它。this.inspectorTableAdapter.ClearBeforeFill=false;someDBDataSet.inspectorRownewRow=this.someDBDataSet.inspector.NewinspectorRow();newRow.inspector_id=-1;//因为C#中的int不能为nullnewRow.fullName="(none)";newRow.employeeCode="";this.someDBDataSet.inspector.AddinspectorRow(newRow);this.inspectorTableAdapter.Fill(this.someDBDataSet.inspector);//this.inspectorTableAdapter.ClearBeforeFill=false;//TODO:这行代码将数据加载到“someDBDataSet.item”表中。您可以根据需要移动或删除它。this.itemTableAdapter.Fill(this.someDBDataSet.item);}找到了!绑定到视图,而不是表。将inspector_idComboBox绑定到检查器表的新SQLServer视图。SELECTNULLasinspector_id,'(none)'asfullName,''asemployeeCodeUNIONSELECTinspector_id,fullName,employeeCodeFROMdbo.inspector优点:(none)Item当ComboBox选择项目时,SelectedItem和文本仍然存在。SQL视图允许inspector_id的NULL值在应用程序代码中不需要解决方法。只需从视图中填充数据集。这允许更大的灵活性,因为关系不受约束。……奇妙!另一种方法是在ComboBox被选中时清除它(无):选择=空;优点:正确的NULL值将保存到DataSet并发送到数据库。无需外部清除按钮。缺点:选择(无)也会清除文本。我宁愿(无)保持选中状态。在尝试了各种方法之后,我最初确定了以下方法:this.itemTableAdapter.Fill(this.someDBDataSet.item);}privatevoidnoInspector_btn_Click(objectsender,EventArgse){inspector_idComboBox.SelectedItem=null;我没有在ComboBox中添加虚拟项,而是添加了一个(链接)按钮来清除ComboBox。优点:ComboBox清除。tableAdaptersetitem.inspector_id=NULL缺点:以上为C#学习教程:绑定ComboBox中的NULL空item,共享所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——BindingOtherformcontrolsassignedtotheinspectorfieldremainingunchange(因为没有“空”的inspector行可以使用).当SelectedItem为空时,inspector_idComboBox不显示任何文本。我更喜欢在框中显示(无)。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
