在我的winform中,我需要检查用户输入的字符串值是否在组合框中,该组合框中的数据值是从数据库中获取的。
是否可以简单地检查用户值是否已经在组合框中,或者我是否必须手动检查数据库以查看数据是否存在?
private void Button1_Click(object sender, EventArgs e)
{
if (!questionList.Items.Contains(customQ.Text.Trim()))
{
dbconnect.addQ(customQ.Text);
refreshBox();
}
}
我尝试使用contains,但是即使数据不在组合框中,它也总是返回false,不胜感激:)
答案 0 :(得分:1)
您应该能够使用FindStringExact方法确定ComboBox中是否已经存在一个项目。
if (questionList.FindStringExact(customQ.Text.Trim()) < 0)
{
// The item was not found to already exist
}
您可以在.NET文档中阅读有关FindStringExact方法的更多信息:
希望这会有所帮助。
答案 1 :(得分:0)
将项目铸造为字符串将适合您的需求。项目作为ObjectCollection处理,它们的IEnumerable甚至不会尝试检查是否包含字符串。
private void Button1_Click(object sender, EventArgs e)
{
if (!questionList.Items.Cast<string>().Contains(customQ.Text.Trim()))
{
dbconnect.addQ(customQ.Text);
refreshBox();
}
}
上面的代码在我的测试中可以正常工作,希望可以为您工作。