原文出自:http://www.bcmeng.com/windows-phone-sqlite1/
本文小梦将和大家分享WP8.1中SQlite数据库的基本操作:(最后有整个示例的源码)(希望能通过本站广告支持小梦,谢谢!)
- 建立数据库
- 增加数据
- 删除数据
- 更改数据
- 查询数据
(注:为了让每个操作都能及时显示在UI上,所以进行了数据绑定.数据绑定会在后面文章专门讲解,先给出数据类Note,代表一个笔记.含有Name 和content 属性.其代码如下:如果不清楚,我会在之后讲解):
namespace SQlite { public class Note : INotifyPropertyChanged { private int id; [AutoIncrement, PrimaryKey] public int ID { get { return id; } set { if (value!=id) { id = value; RaisePropertyChanged("ID"); } } } private string name; [MaxLength(30)] public string Name { get { return name; } set { if (value != name) { name = value; RaisePropertyChanged("Name"); } } } private string content; [MaxLength(300)] public string Content { get { return content; } set { if (value != content) { content = value; RaisePropertyChanged("Content"); } } } public event PropertyChangedEventHandler PropertyChanged; protected void RaisePropertyChanged(string propertyName) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } } }
windows phone 8.1开发SQlite-建立数据库
private SQLiteAsyncConnection GetConn() { return new SQLiteAsyncConnection(ApplicationData.Current.LocalFolder.Path + "\note.db"); } private async void createButton_Click(object sender, RoutedEventArgs e) { SQLiteAsyncConnection conn = GetConn(); await conn.CreateTableAsync<Note>(); await new MessageDialog("创建数据库成功!").ShowAsync(); }
windows phone 8.1开发SQlite-增加数据
SQLiteAsyncConnection conn = GetConn(); await conn.InsertAsync(new Note { Name = "小梦", Content = "小梦我想你" }); await conn.InsertAsync(new Note { Name = "小梦", Content = "小梦我爱你" }); await conn.InsertAsync(new Note { Name = "小梦", Content = "小梦我喜欢你" }); await conn.InsertAsync(new Note { Name = "小梦", Content = "小梦我恨你" }); await conn.InsertAsync(new Note { Name = "小梦", Content = "小梦我打你" }); List<Note> notelist = await conn.Table<Note>().ToListAsync(); notes = new ObservableCollection<Note>(notelist); listBox.ItemsSource = notes; await new MessageDialog("增加数据成功!").ShowAsync();
windows phone 8.1开发SQlite-删除数据
SQLiteAsyncConnection conn = GetConn(); var query = await conn.Table<Note>().FirstAsync(); for (int i = 0; i < notes.Count;i++ ) { if (notes[i].ID == query.ID) { notes.RemoveAt(i); break; } } await conn.DeleteAsync(query as Object); listBox.ItemsSource = notes; await new MessageDialog("删除数据成功!").ShowAsync();
windows phone 8.1开发SQlite-修改数据
SQLiteAsyncConnection conn = GetConn(); for (int i = 0; i < notes.Count; i++) { if (notes[i].Name=="小梦") { notes[i].Content = "小梦我爱你"; } } var query = conn.Table<Note>().Where(x => x.Name=="小梦"); var result = await query.ToListAsync(); foreach (var item in result) { item.Content = "小梦我爱你"; await conn.UpdateAsync(item); } await new MessageDialog("更新数据成功!").ShowAsync();
windows phone 8.1开发SQlite-查询数据
SQLiteAsyncConnection conn = GetConn(); var query = conn.Table<Note>(); var result = await query.ToListAsync(); notes = new ObservableCollection<Note>(result); listBox.ItemsSource = notes; await new MessageDialog("查询数据成功!").ShowAsync();