2012-07-30 67 views
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(); 
     } 
    } 
+0

究竟是什么问题? – 2012-07-30 01:51:39

+0

当我选择电台名称时,我需要电台名称来知道它的ID并保存到另一个表中,因为我使用该ID作为该表的外键。 – rookie 2012-07-30 03:34:01

回答

0

在这里你可以做的事情,而不是采取两个不同的名称和id的数组,你可以采取这样的站类的列表。

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(); 

现在使用conbobox代替SelectedIndex属性的SelectedValue属性,你会得到相关的站名 站ID。

TS.stationID = cbStation.SelectedValue; 

同样的事情是位置也

你也可以使用数组,而不是在这里列出。