1

ユーザーがデータベースを作成している場合、データベースに同じ 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();
        }
    }

誰でも助けることができますか?どうぞよろしくお願いいたします。

4

2 に答える 2

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
              }
        }
   }
于 2012-07-13T07:56:43.230 に答える
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 にバインドされていると思います。

于 2012-07-13T08:22:36.337 に答える