ローカルの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());
で