C# - 如何检查用户的输入是不是存在于组合框中(使用的数据绑定项)

Posted

技术标签:

【中文标题】C# - 如何检查用户的输入是不是存在于组合框中(使用的数据绑定项)【英文标题】:C# - How to check if the user's input is present in the ComboBox (used Data Bound Items)C# - 如何检查用户的输入是否存在于组合框中(使用的数据绑定项) 【发布时间】:2017-01-26 13:26:34 【问题描述】:

我使用 ComboBox 中的 Winform 的 Data Bound 项目将其连接到我的 MS Access Database 中的一张表。

如何检查用户的输入是否存在于绑定到我的ComboBoxData Source 中?

【问题讨论】:

我建议FirstOrDefault(...)。根据您提供的谓词,它将返回项目或 null,您只需检查即可。 如果您可以访问 Combobox 项,您还可以使用指令 mycombo.Items.IndexOf("my_new_input"),如果未找到则返回 -1,如果找到则返回列表索引. 感谢您的即时回复!我知道这很荒谬,但是,我将如何执行 FirstOrDefault?真的很抱歉,我一周前才开始使用 C#。 用户在组合框以外的其他控件中提供输入? 如果您从数据源初始化组合框,则在该源中搜索所需的项目,而不是挖掘业务数据的控件。如果您有其他问题(例如,控件未选择活动项或类似问题),请指定您的确切问题,而不是生成 XY 问题。 xyproblem.info 【参考方案1】:

我假设你像这样设置组合框数据源

DataTable dt = getData();
cmbbox1.DataSource = dt;
//define DisplayMember and ValueMember

然后你可以像这样检查

var somedata = dt.AsEnumerable().Where(p=>p["DisplayMemberFieldName"] = UserInput).FirstOrDefault();

【讨论】:

1.) WhereDataTable 不起作用 2.) 为什么要为每一行分配Displaymember,顺便说一句是什么? 3.) 什么是UserInput 4.) 为什么你认为源是DataTable?它可以是任何IListIListSource

以上是关于C# - 如何检查用户的输入是不是存在于组合框中(使用的数据绑定项)的主要内容,如果未能解决你的问题,请参考以下文章

Excel VBA检查各种组合框中是不是存在值,然后添加相应的文本框值

如何允许用户在 c# 中的 datagridview 组合框中手动输入

未选择任何内容时将默认值保存在组合框中c#

检查列表框中的项目是不是已存在于许多其他列表框中?

如何动态更改 C# 组合框或文本框中的自动完成条目?

C#。当我尝试检查用户是不是存在于我的 SQL 数据库中时,我的 Windows 窗体应用程序崩溃