C# WinForms组合框显示ValueMember而不是DisplayMember

C# WinForms组合框显示ValueMember而不是DisplayMember,c#,winforms,combobox,C#,Winforms,Combobox,我试图填充从数据库返回的DataTable中的下拉列表。选择后,我将使用BatchNumber(int)运行查询,但我希望组合框显示LastRun(格式化日期时间)。我已验证列名是否匹配 出于某种原因,正在显示BatchNumber。打印出cboLastRunTime.DisplayMember时,BatchNumber也会显示在那里,即使我已将其设置为LastRun。我已经阅读了很多关于这个主题的文章,并尝试了数据绑定和其他技术;什么都没起作用。如何显示DisplayMember 我对Wind

我试图填充从数据库返回的DataTable中的下拉列表。选择后,我将使用BatchNumber(int)运行查询,但我希望组合框显示LastRun(格式化日期时间)。我已验证列名是否匹配

出于某种原因,正在显示BatchNumber。打印出cboLastRunTime.DisplayMember时,BatchNumber也会显示在那里,即使我已将其设置为LastRun。我已经阅读了很多关于这个主题的文章,并尝试了数据绑定和其他技术;什么都没起作用。如何显示DisplayMember

我对Windows窗体相当陌生。如果你需要更多信息,请告诉我

    private void GetLastRunTimes()
    {
        _dataTable = _process.GetLastRunTimes(); //retrieves data from DB
        cboxLastRunTimes.DataSource = _dataTable;
        cboxLastRunTimes.DisplayMember = "LastRun";
        cboxLastRunTimes.ValueMember = "BatchNumber";
    }
编辑:这里是我使用组合框中的值的地方:

    private void btnGetPastResults_Click(object sender, EventArgs e)
    {
        try
        {
            int resultId = Convert.ToInt32(cboxLastRunTimes.SelectedValue);
            GetPreviousReconciliationInfo(resultId);
            if (_resultsDT != null)
                LoadDataGrid(); 
            //other UI changes
        }
        catch (Exception ex)
        {
            //error handling
        }
     }

    private void GetPreviousReconciliationInfo(int batchNumber)
    {
        _resultsDT = _process.Reconcile_GetPreviousReconciliationInfo(batchNumber); //retrieves data from DB
    }

当数据库中的列名是LastRun时,它在从SQLClient传递的过程中被转换为LastReconciredTime。将DisplayMember的值更改为LastReconciredTime修复了它


感谢@Fabio提醒我们再次检查

当数据库中的列名上次运行时,它在从SQLClient传输的过程中被转换为LastReconfiedTime。将DisplayMember的值更改为LastReconciredTime修复了它


感谢@Fabio提醒我们再次检查

您是使用组合框SelectionChanged事件获取值还是使用其他方法?您需要向我们展示用于检索组合框数据的代码。交换行的顺序,这是一个已知的问题。@jpaugh78-我没有包含处理程序,但我的印象是,如果我想在选择更改时触发事件,我只需要它。正在表单加载时调用此方法。下拉列表中的选项从一开始就显示不正确,只有单击辅助按钮时才会触发事件。@DonBoitnott-尝试过。。。同样的问题。再次检查
数据表中是否存在列“LastRun”。datatable变量是在窗体范围中定义的。将其更改为方法范围以确保没有任何更改。是否使用组合框SelectionChanged事件获取值或其他方法?您需要向我们展示用于检索组合框数据的代码。交换行的顺序,这是一个已知的问题。@jpaugh78-我没有包含处理程序,但我的印象是,如果我想在选择更改时触发事件,我只需要它。正在表单加载时调用此方法。下拉列表中的选项从一开始就显示不正确,只有单击辅助按钮时才会触发事件。@DonBoitnott-尝试过。。。同样的问题。再次检查
数据表中是否存在列“LastRun”。datatable变量是在窗体范围中定义的。将其更改为方法范围,以确保没有任何更改