将数组与TextBox进行比较以检查数据库中的重复值

时间:2012-07-13 07:53:40

标签: c# arrays linq combobox

我不知道如何调用该方法来检查数据库是否具有相同的Station名称(如果用户正在创建它)。我设法将数据库的列存储到数组,但我仍然无法检查。任何人都可以帮助我吗?我现在有点卡住了。

这是按钮处理程序中的代码,用于生成将数据创建到数据库中。

 private void btnCreate_Click(object sender, EventArgs e)
    {
        using (testEntities Setupctx = new testEntities())
        {
            station creStation = new station();
            creStation.Station1 = txtStation.Text;
            creStation.Seats = cbSeats.SelectedItem.ToString();
                Setupctx.stations.AddObject(creStation);
                Setupctx.SaveChanges();
                txtStation.Text = "";
                cbSeats.SelectedIndex = -1;
                MessageBox.Show("New Station Has Been Created.");
        }
    }

这是我将列存储到数组中的代码。

private string[] StationNameList()
    {
        using (testEntities Setupctx = new testEntities())
        {
            return Setupctx.stations.Select(x => x.Station1).OrderBy(x => x).ToArray();
        }
    }

有人可以帮忙吗?非常感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

如果您想检查数据库中是否已存在该电台,那么在添加电台之前btnCreate_Click,您可以从方法StationNameList获取电台列表,然后检查电台名称在文本框中输入已经存在于列表中。你可以做到

 private void btnCreate_Click(object sender, EventArgs e)
    {
        using (testEntities Setupctx = new testEntities())
        {
         string[] stations = StationNameList();

         if(stations.Contains(txtStation.Text))
              {
              //already exists
              }
         else
              {
              //does not exists
              //your code to insert the new object
              }
        }
   }

答案 1 :(得分:0)

试试这个

        private void btnCreate_Click(object sender, EventArgs e)
    {
        using (testEntities Setupctx = new testEntities())
        {
            station creStation = new station(){Station1=txtStation.Text,Name=NameTextbox.text,Seats = cbSeats.SelectedItem.ToString()};
            if (!Setupctx.Stations.Any(st => st.Name == creStation.Name))
            {
                Setupctx.stations.AddObject(creStation);
                Setupctx.SaveChanges();
                txtStation.Text = "";
                cbSeats.SelectedIndex = -1;
                MessageBox.Show("New Station Has Been Created.");
            }
        }
    }

我希望这会有所帮助,我希望你在Station类中有Name属性,并且绑定到UI中的一些Textbox。