0

データベースへのデータの保存に関するコードで問題に直面しています。テキスト ボックスとコンボ ボックスがありますが、テキスト ボックスにデータを入力し、コンボ ボックスでデータを選択して [保存] をクリックしても、コンパイル中に何も起こらず、エラーも検出されませんでした。実際に何が問題だったのかを知り、それに対する解決策を教えてもらえますか?

enter code here  private void btnCreate_Click(object sender, EventArgs e)
    {
        using (testEntities Setupctx = new testEntities())
        {
            string selectST = cbSeats.SelectedItem.ToString();
            string inputST = txtStation.Text;

            var createStation = (from createST in Setupctx.stations
                                  where createST.Seats == selectST
                                  where createST.Station1 == inputST
                                  select createST).SingleOrDefault();
            if (createStation != null)
            {
                Setupctx.stations.AddObject(createStation);
                Setupctx.SaveChanges();
                txtStation.Text = "";

                MessageBox.Show("New Station Has Been Created.");
            }
        }
    }

どうぞよろしくお願いいたします。

4

4 に答える 4

1

これはそれを行う正しい方法です。

private void btnCreate_Click(object sender, EventArgs e)
    {
        using (testEntities Setupctx = new testEntities())
        {
            string[] stations = StationNameList();
            station creStation = new station();
            creStation.Station1 = txtStation.Text;
            creStation.Seats = cbSeats.SelectedItem.ToString();
            if (stations.Contains(txtStation.Text))
            {
                MessageBox.Show("This Station is already been created. Please enter a new Station.");
            }
            else
            {
                Setupctx.stations.AddObject(creStation);
                Setupctx.SaveChanges();
                txtStation.Text = "";
                cbSeats.SelectedIndex = -1;
                MessageBox.Show("New Station Has Been Created.");
            }
        }
    }
于 2012-07-17T01:44:55.593 に答える
1

イベントハンドラーが確実に呼び出されるようにすることについて、@JamesDに同意します。

さらに、linq クエリからオブジェクトを取得して変更を加えた場合は、DataContext で SubmitChanges() を呼び出して、それらの変更を保存する必要があります。( Setupctx は DataContext オブジェクトであると想定しています)。

SubmitChanges()の詳細については、こちらをお読みください。

また、SQL を使用しているかどうかもわかりません。もしそうなら、ここに素晴らしいチュートリアルがあります: Linq to SQL Tutorial

于 2012-07-13T03:39:32.063 に答える
1

次のような新しいステーション オブジェクトを作成する必要があります。

    if (createStation != null)
  {
    var obj = new Staion();
    obj.Seats=selectST;
    obj.Staion1=inputST;


    Setupctx.Staions.Add(obj);
    Setupctx.SubmitChanges();

    txtStation.Text = "";

     MessageBox.Show("New Station Has Been Created.");
}

LINQ To SQLの詳細はこちら

于 2012-07-13T03:44:49.267 に答える
0

リストをチェックするだけです:

  • ボタン イベント ハンドラが接続されていることを確認しましたか?

あなたが言う時

何も起こりません

イベントハンドラが呼び出されていないということですか? データベースから取得したステーションでも、実際には何もしていません。引き出したステーション リストに追加し直します。

于 2012-07-13T03:20:43.663 に答える