2016-04-25 4 views
0

ローカルのSQLite DBからアイテムをバインドする 'Page1'にリストボックス(listBoxobj)がある場合、別のページから最新のアイテムIDを取得するにはどうすればよいですか(たとえばPage2)。この方法は、私が別のページから最新のリストボックスアイテムを取得する方法 - Windows phone 8

public Refueling ReadRefuel(int refuelid) 
{ 
    using (var dbConn = new SQLiteConnection(App.DB_PATH)) 
    { 
     var existingrefuel = dbConn.Query<Refueling>("select * from Refueling where Id =" + refuelid).FirstOrDefault(); 
     return existingrefuel; 
    } 
} 

DataBaseHelperクラスからReadRefuel()を呼び出すされ

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    Selected_ContactId = int.Parse(NavigationContext.QueryString["SelectedContactID"]); 
    currentrefuel = Db_Helper.ReadRefuel(Selected_ContactId); 
} 

のPage1:

private void listBoxobj_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    if (listBoxobj.SelectedIndex != -1) 
    { 
      Refueling listitem = listBoxobj.SelectedItem as Refueling; 
      NavigationService.Navigate(new Uri("/View/EditRefuelingPage.xaml?SelectedContactID=" + listitem.Id, UriKind.Relative)); 
    } 
} 

Page2の瞬間に私は以下のメソッドを持っています最新のアイテムIDを取得するには別の方法が必要です(リストボックスをクリックせずに)。そして、次の操作を行い

 public Refueling GetLatestID() 
    { 
      using (var dbConn = new SQLiteConnection(App.DB_PATH)) 
      { 
      var latestID = dbConn.Query<Refueling>("select Id from Refueling").Last(); 
      return latestID; 
      } 
    } 

:私はそれで、最新のIDを取得するために私のCRUIDクラス内の1つの追加の方法を作ってみました

   int latestID = Convert.ToInt32(Db_Helper.GetLatestID()); 
       lastRefueling = Db_Helper.ReadRefuel(latestID); 
       oldMileage = Convert.ToDouble(lastRefueling.Mileage); 

が、例外だ:種類の例外「システムを.InvalidCastExceptionは」mscorlib.ni.dllで発生したが、私は型給油の対象を得たint latestID = Convert.ToInt32(Db_Helper.GetLatestID());

答えて

0

実際にユーザーコードで処理されていなかったので、私はこのようにそれから、要素IDを取らなければならなかった:lastRefueling = Db_Helper.ReadRefuel(latestID.Id);

関連する問題