首页 新闻 搜索 专区 学院

wp7 关于SilverlightPhoneDatabase删除的问题?

0
悬赏园豆:20 [已解决问题] 解决于 2012-03-13 16:02

我用的是第三方SilverlightPhoneDatabase数据库 

DBHelper db = new DBHelper();
ObservableCollection
<Money> money = new ObservableCollection<Money>();
public all2()
{
InitializeComponent();
money
= db.GetAllMoney();
lstPictures.ItemsSource
= money;
}

private void btnRemoveSelection_Click(object sender, RoutedEventArgs e)
{
if (null != lstPictures.SelectedItem)
{
money.Remove(lstPictures.SelectedItem
as Money);//这个执行成功页面移除了数据
db.DeleteMoney(lstPictures.SelectedItem
as Money);//这一句是调用删除但是执行了没报错,数据依然存在!
MessageBox.Show(
"删除成功!");
}
}

请问下高手 如何解决这个问题??

DBHelper.cs

public class DBHelper
{
public Database db;
public static string dbname = "AccountHelper";

public DBHelper()
{
if (!Database.DoesDatabaseExists(dbname))
db
= Database.CreateDatabase(dbname);
else
db
= Database.OpenDatabase(dbname);

if (db.Table<Category>() == null)
db.CreateTable
<Category>();
if (db.Table<Money>() == null)
db.CreateTable
<Money>();
db.Save();
}
/// <summary>
/// 添加费用
/// </summary>
/// <param name="money"></param>
public void AddMoney(Money money)
{
db.Table
<Money>().Add(money);
db.Save();
}

/// <summary>
/// 返回所有费用集合
/// </summary>
/// <returns></returns>
public ObservableCollection<Money> GetAllMoney()
{
return db.Table<Money>();
}

/// <summary>
/// 删除费用
/// </summary>
/// <param name="money"></param>
public void DeleteMoney(Money money)
{
db.Table
<Money>().Remove(money);
}

}

问题补充:

帮忙下。。。呼呼 搞了很久 后来我把这两句

money.Remove(lstPictures.SelectedItem as Money);//这个执行成功页面移除了数据
db.DeleteMoney(lstPictures.SelectedItem
as Money);//这一句是调用删除但是执行了没报错,数据依然存在!

交换了位置但还是一样。。。。 删除不成功!!!

后来发现加上save()这个方法就好了

但是更新怎么办呢??没更新的方法。。。求更新方法!!!

youngkeen的主页 youngkeen | 初学一级 | 园豆:8
提问于:2011-07-12 17:00
< >
分享
最佳答案
0

你可以试一下:

更新的时候先获取一个Money对象,你可以通过GetAllMoney方法返回值进行过滤得到。

修改Money对象属性,然后调用db.Save()看看是否更新进去。

收获园豆:20
Allen Lee | 小虾三级 |园豆:704 | 2011-07-15 11:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册