4.2 SQLite建数据库的步骤
SQLite建数据库的步骤如下:
(1)通过SQLiteConnection对数据库进行连接[6],通过软件建数据库,首先要有数据源,如:
SQLiteConnection conn=new SQLiteConnection("Data Source=\Program Files\ maindata.db");
对数据库要进行操作需要执行的命令,如SQLiteCommand cmd=new SQLiteCommand();
(2)每次使用数据库前需要打开数据库,还需要连接数据库,关闭数据库;
(3)通过 CREATE TABLE SQL语句进行建表。必须给表注上表名,方便下面操作。如:
{cmd.CommandText="CREATETABLE ServerLert(Numintrger,BedNum varchar(20),ServerItem varchar(50),ServerTime varchar(30),Passwords varchar(30));"
(4)可以通过INSERT INTO 语句进行插入数据。如:
cmd.CommandText="INSERT INTO ServerLert(Num,BedNum,ServerItem,ServerTime) VALUES(1 ,′2′,′测血糖′,′10-12-10 15:50:00′)";
(5)数据库至此建成,由于插入的时间单元格不能完全显示,因此需要通过对图2中标注有灰色背景的TableStyles进行设置[7]。如:
DataGridTableStyle dgts=new DataGridTableStyle();
dgts.MapPINgName=ds.Tables[0].TableName;
DataGridTextBoxColumn dgtbc=new DataGridTextBoxColumn();
dgtbc.HeaderText=ds.Tables[0].Columns[0].ColumnName;
dgtbc.MappingName=ds.Tables[0].Columns[0].ColumnName;
dgtbc.Width=70;
dgts.GridColumnStyles.Add(dgtbc);
上面是对表中第一列进行的宽度设置主要是对DataGridTableStyle中列的格式进行设置,这就解决了显示文本过长的问题。第二列设置80,第三列设置了170,在Wince中运行的结果。如图3所示。
4.3 Wince通过DataGrid属性建数据库的分析
DataGrid在应用于基于Wince的Windows mobile[7]智能设备时,主要针对DataGridTableStyle属性进行设置[8]。根据应用于Windows mobile的原理对基于Wince的ARM9的嵌入式设备中建数据库还是行不通。对其列的属性进行操作设置仍然改变不了列的宽度,所以这种路径行不通。试了很多种方法,最后通过软件编程进行设置,得到了图3的结果。比较DataGridTableStyl进行设置与软件设置发现,问题在于表的MappingName与列的MappingName设置时,必须对应才能实现修改功能。用DataGridTableStyle设置,如果列的MappingName与数据库中的建表的列不对应,则映射不存在,从而找不到网格去显示数据,更无法对数据的列宽进行操作。所以通过软件编程,可以对建在缓存区域中的每一张表中所有的列进行操作,解决文本过长不能完全显示的问题。
通过上面的介绍可以看出,SQLite作为开源的嵌入式数据库应用在Wince中的一个优点就是建表比较简单,不像SQL CE数据库[9],在Wince运行中需要先创建表,把所建的数据库放在Wince的系统中,添加数据源时再去绑定这个数据源。对于在.net2.0平台建立的数据库[10],添加数据源时无法找到路径,所以这种方法不可行。通过SQLite软件创建数据库的方法则可以改善上述不足。SQLite作为一款小巧的嵌入式数据库,发展前景很大,在基于ARM的Wince操作系统有着广泛应用[11]。
参考文献
[1] OWENS M.The definitive guide to SQLite[M].US:APress,2006.
[2] 周毓林,宁阳,陆贵强,等.Windows CE.net内核定制及应用开发[M].北京:电子工业出版社,2005.
[3] 万玛宁,关永,韩相军.嵌入式数据库典型技术SQLite和Berkeley DB的研究[J].微计算机信息,2006,22(2):91-92.
[4] HENDERSON K.Transact-SQL权威指南[M].健莲科技译,北京:中国电力出版社,2002.
[5] An introduction to the SQLite C/C++interface[CP].http:// www.sqlite.org/cintro.html.
[6] 胡伟.SQLite在嵌入式系统上的实现研究[J].计算机与数字工程,2009,37(2):46-47.
[7] MieroSOFtWindowsMobile.http://www.mierosoft.eoInjwindowsmobile/default.MSPx.
[8] 刘彦博,胡砚,马骇.WindowsMobile平台应用与开发[M]. 北京:人民邮电出版社,2006.
[9] NEWMAN C.SQLite[M],USA:Sams,2004.
[10] ROB P.数据库设计与开发教程[M].于书举,许向众,韩德强,等译,北京:电子工业出版社,2002.
[11] 邓成中,黄惟公,万松峰.基于嵌入式ARM&WinCE的小型监控系统的设计[J].微计算机信息,2005,21(23):47-49.