0

将 sql 表中的名称添加到 WPF 中的组合框时,我想检查该名称是否已存在于组合框中。如果不添加。我尝试过的代码不起作用:

        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 (cbPartners.Items.Contains(Name) != null)
                {
                    cbPartners.Items.Add(Name);
                }

                else
                {
                   MessageBox.Show("message");
                }
                }

            sc.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
4

3 回答 3

3

cbPartners.Items.Contains(Name)返回 true 或 false,将其与 null 进行比较总是会给出相同的结果。将条件更改为:

if (!cbPartners.Items.Contains(Name))
于 2013-10-14T12:38:07.627 回答
2

这是问题所在:

if (cbPartners.Items.Contains(Name) != null)

Contains 方法返回 Bool 值,并且您将其与 null 进行比较,这始终为真。

将其更改为:

if (!cbPartners.Items.Contains(Name))
于 2013-10-14T12:40:23.927 回答
2

问题是你应该写:

if (!cbPartners.Items.Contains(Name))

我想我是第一个;)

于 2013-10-14T12:46:24.210 回答