【转载】wp 8.1开发SQlite数据库操作详解

 

转载自 编程小梦的 《windows phone 8.1开发SQlite数据库操作详解》

本文小梦将和大家分享WP8.1中SQlite数据库的基本操作:(最后有整个示例的源码)(希望能通过本站广告支持小梦,谢谢!)

  • 建立数据库
  • 增加数据
  • 删除数据
  • 更改数据
  • 查询数据

(注:为了让每个操作都能及时显示在UI上,所以进行了数据绑定.数据绑定会在后面文章专门讲解,先给出数据类Note,代表一个笔记.含有Name 和content  属性.其代码如下:如果不清楚,我会在之后讲解):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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-建立数据库

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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-增加数据

 

1
2
3
4
5
6
7
8
9
10
11
12
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-删除数据

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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-修改数据

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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-查询数据

 

1
2
3
4
5
6
7
8
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 ( ) ;

 

 

 

转载于:https://www.cnblogs.com/lxxlxx888/p/5171239.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值