我用的是第三方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()这个方法就好了
但是更新怎么办呢??没更新的方法。。。求更新方法!!!
你可以试一下:
更新的时候先获取一个Money对象,你可以通过GetAllMoney方法返回值进行过滤得到。
修改Money对象属性,然后调用db.Save()看看是否更新进去。