window Mobile SqlCeResultSet
最近看了马宁老师的SqlCEResultset课程后,确是在wince访问本地数据库的时候确实很好用,性能很好.具体的课程可以在微软的网站下载。
在这里做一些SqlCeResultSet的介绍:
第一:什么是SqlCeResultSet
SqlCeResultSet其实是一个特殊的DataReader,但是不像一般的DataReader,它可以向前向后查看数据,而且可以将修改的数据Update到数据库中。因为实现了IListSource,所以支持被WinForm控件进行数据绑定。始终与数据库连接,不像Dataset,可以实现显示被其他连接改变的数据,。NET Compact Framework 2.0支持。
第二:介绍ResultSetOptions的设置
如果不设置ResultSetOptions的参数的话~!对象按照默认行为执行,
参数有Insensitive --- 不会发现其他数据连接对数据源的改变 。
Sensitive --- 察觉来自其他数据连接的改变 --Base table cursors的属性始终为Sensitive ---
TableDirect command type => base table cursor
Scrollable --你可以向前或向后读取数据,使用内部的BookmarkArray
Updatable ---允许更新
None --- 只读,单向浏览数据。
*******************************************************************************************************************************
从数据库中加载数据
– 使用SqlCeResultSet
– 使用TableDirect
– 如果需要修改数据库,则使用
ResultSetType.Updatable
那么读取数据的时候确实有几种方法:
第一是使用Da
备注:
BindingSource控件(new in Microsoft .NET 2.0)
? 提供数据源与窗体控件间的间接逻辑层
? 为数据集合提供strong-typed数据绑定
? 将BindingSource.DataSource设置为
ResultSetView中,然后将控件的DataSource属性
设置为BindingSource
– Visual Studio中的大部分控件可以用于数据绑定
– 控件被绑定到同一个BindingSource上,可以保持一致
只要设置好Da
VB.NET '这里使用BookBase.sdf为本地数据库
'创建一个连接路径
Dim sqlceconnstr As String = "Da
'定义SqlCeResultSet
Dim orderSet as DBResultSets.OrdersResultSet = new DBResultSets.OrdersResultSet(connString, ResultSetOptions.Scrollable | ResultSetOptions.Sensitive | ResultSetOptions.Updatable)
dim bs as BindingSource=new BindingSource
orderSet .Bind(bs)
datagrid1.dataSource =bs
这里的添加使用 orderSet.AddOrdersRecord 和删除 orderSet.Delete 还有更新orderSet.Update 就可以了。
第二种是ResultSetView数据绑定
备注:这里列出三种控件的加载
? 不需要使用BindingSource,也可以进行数据绑定 为da
DataGrid.DataSource = your ResultSetView
? 简单control(例如TextBox) 使用ResultSetView 作
TextBox.DataBindings.Add("text", ResultSet.ResultSetView,"Customer ID", true, DataSourceUpdateMode.Never);
? List controls (ListBox, ComboBox)
ListBox.DataSource = your view
ListBox.DisplayMember = view.Columns[n]
ListBox.ValueMember = view.Columns[n]
------使用datagrid加载 SqlCeResultSet ,按表查询的,如果是用select语句的话!只要更改一下cmd就可以了
Try
Dim sqlceconnstr As String = "Da
Dim conn As SqlCeConnection
conn = New SqlCeConnection(sqlceconnstr) '创建连接
conn.Open() '打开连接
Dim cmd As SqlCeCommand = conn.CreateCommand '创建查询过程
cmd.CommandType = CommandType.TableDirect '按整表查询模式
cmd.CommandText = "Order" '写入表名
'定义SqlCeResultSet
Dim resultSet As SqlCeResultSet = cmd.ExecuteResultSet(ResultSetOptions.Sensitive Or ResultSetOptions.Scrollable Or ResultSetOptions.Updatable)
'显示数据
DataGridView1.DataSource = resultSet.ResultSetView
conn.Close()
Catch ex As SqlCeException
MsgBox(ex.Message)
End Try
好了,这里就简单的介绍了SqlCeResultSet 的用法和基本情况,其实在wince访问本地数据库的,多使用Datareader
是最好的,SqlCeResultSet 只是一个特殊的DataReader而已,希望能给大家一点帮助.有好的写法和建议可以留言给我。
浙公网安备 33010602011771号