1

我想检查表中的名称是否已在组合框中列出,如果是,请不要插入。如果不插入。我尝试了以下方法:

public void display()
{      
    try
    {
        sc.Open();
        string Query = "select * from Part";
        SqlCommand createCommand = new SqlCommand(Query, sc);
        SqlDataReader dr = createCommand.ExecuteReader();
        while (dr.Read())
        {
            string Name = dr.GetString(1);

            if (Name != cbPartners.Text)
            {
                cbPart.Items.Add(Name);//Displaying a list in the Combo Box
            }
            else
            {
                cbPart.Items.Clear();
            }
        }
        sc.Close();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}
4

2 回答 2

0
if (cbPart.FindStringExact(Name) == -1)
{
    cbPart.Items.Add(Name);
}

作为旁注,您不需要选择所有列,因为您只需要一列

string Query = "select partname from Part";

不清楚为什么要删除所有项目else以防万一,cbPart.Items.Clear();当找到匹配项目时,该行将删除已经存在的组合框项目。

于 2013-10-10T14:18:42.817 回答
0

试试这个(使用 linq)

if (cbPart.Items.Cast<ListItem>().Select(f => f.Text).Contains(Name))
       {
             cbPart.Items.Add(Name);//Displaying a list in the Combo Box
       }
           else
             ...
于 2013-10-10T14:09:53.177 回答