0

私は今、配列の比較とその作成に関して立ち往生しています。私は2つのテーブル、駅、場所を持っています。ステーション内の列は、ID とステーション名です。ロケーションテーブルにも同じことが言えますが、名前だけが異なります。ID を配列に入れ、名前を配列に入れます。名前とIDを比較して、ユーザーが名前を選択したときに、選択した名前に属するIDをプログラムが認識し、主キーを使用して他のテーブルに保存したかったのです。これが今から作成したコードですが、解決方法がわかりません。ここで助けが得られることを願っています。ありがとう!

private void btnCreate_Click(object sender, EventArgs e)
    {
        using (testEntities Setupctx = new testEntities())
        {
            string[] stations = StationNameList();
            int[] stationsID = StationIDList();
            string[] locations = LocationNameList();
            int[] locationsID = LocationIDList();

            int Stationindex = cbStation.SelectedIndex;
            int Locationindex = cbLocation.SelectedIndex;

            trolleyservice TS = new trolleyservice();
            TS.stationID = cbStation.SelectedIndex;
            TS.locationID = cbLocation.SelectedIndex;
            TS.tServiceTiming = txtTime.Text;
            TS.tServiceType = txtType.Text;
            Setupctx.trolleyservices.AddObject(TS);
            txtTime.Text = "";
            txtType.Text = "";

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

各テーブル用に作成したすべての配列は次のとおりです。

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

        }
    }

    private int[] StationIDList()
    {
        using (testEntities Setupctx = new testEntities())
        {
            return Setupctx.stations.Select(sid => sid.idstations).OrderBy(sid => sid).ToArray();
        }
    }

    private string[] LocationNameList()
    {
        using (testEntities Setupctx = new testEntities())
        {
            return Setupctx.locations.Select(l => l.Location1).OrderBy(l => l).ToArray();
        }
    }

    private int[] LocationIDList()
    {
        using (testEntities Setupctx = new testEntities())
        {
            return Setupctx.locations.Select(lid => lid.idlocation).OrderBy(lid => lid).ToArray();
        }
    }
4

1 に答える 1

0

ここでは、名前とIDの2つの異なる配列を取得する代わりに、このようなステーションクラスのリストを取得できます。

 private List<stations> StationNameList()
  {
    using (testEntities Setupctx = new testEntities())
    {
        return Setupctx.stations.OrderBy(s => s.Station1).ToList();
    }
  }

このリストをこのようなデータソースとしてcbStationに割り当てます

cbStation.DataSource =StationNameList() ;
cbStation.DataTextField = "Station1";//it is text field that you want to display
cbStation.DataValueField = "idstations";//it is value field of combo box
cbStation.DataBind();

ここで、SelectedIndexプロパティの代わりにconboboxのSelectedValueプロパティを使用すると、ステーション名に関連するステーションIDが取得されます。

 TS.stationID = cbStation.SelectedValue;

場所も同じです

ここにリストする代わりに配列を使用することもできます。

于 2012-07-30T04:52:52.857 に答える