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

これを試してください(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 に答える
0
if (cbPart.FindStringExact(Name) == -1)
{
    cbPart.Items.Add(Name);
}

補足として、必要な列は 1 つだけなので、すべての列を選択する必要はありません。

string Query = "select partname from Part";

elseを使用してすべてのアイテムを削除する理由が明確ではなくcbPart.Items.Clear();、一致するアイテムが見つかったときにその行が既存のコンボボックスアイテムを削除します。

于 2013-10-10T14:18:42.817 に答える