结合前几日开发的《全国大坝基础数据库采集端》中的PDA程序开发过程,对VS2008开发智能设备上的程序做个小总结。

1         程序结构

程序中包括四个部分:

1. 系统配置

这个部分用来配置系统中的相关参数,参数包括数据库信息和串口的配置信息。这部分的主要技术是XML文件的读取和写入。

2. 数据下载

从数据库中下载数据到PDA,PDA上的保存也是使用数据库。这部分的技术主要是PDA设备上的移动数据库开发和使及用PDA连接PC数据库

3. 数据上传

把PDA上的数据上传到PC数据库中,使用的技术和2相同。

4. GPS数据获取

通过外置蓝牙GPS模块获取当时所在位置的经纬度,并将经纬度保存在PDA上的移动数据库中。涉及到的技术有串口数据的读取,GPS数据的解析。

2         开发环境

软件环境: Visual studio 2008

PC数据库: sql server

智能设备: Windows Mobile 6

3         建立工程

3.1      建立项目

建立工程的过程和VS建立其他工程步骤相同,通过vs2008中的菜单“文件-新建-项目 ”,建立一个新项目。

VS2008已经集成了智能设备的开发环境,根据开发语言的不同,在不同的开发语言树中选择“智能设备”,下方的名称中填写项目名称,点击“确定”按钮,就建立了一个智能设备的程序项目。

3.2      建立调试环境

VS2008中已经包括了智能设备的仿真程序,编写的程序可以通过PC机上的仿真程序进行调试,不必在PDA上逐个调试程序。

建立项目后,通过菜单“项目--项目属性”中的“设备”页中设置调试内容。

在下拉框中,选择目标设备的类型。类型的选择要根据PDA的操作系统进行确定,PDA上如果是中文操作系统,请选择“CHS”打头的选项。具体如何选择,请根据PDA的操作系统进行。如果对选项中的内容不了解,请查阅其他资料。

仿真程序的选择和设置不仅仅只有这一种方式,也可以通过VS2008中的“工具-设备仿真器管理器”进行设置。

3.3      绘制窗体

智能设备的窗体和windows窗口的差别不是很大。在工程中选择添加窗体后,VS中出现PDA屏幕模样的模板。需要什么功能,在工具箱中把对应的控件拖到模板上即可。这部分的开发和普通的Windows程序开发没有什么不同。

不同的部分就是菜单。智能设备的菜单中有缺省菜单,就是在屏幕底部有个菜单控件,可以通过增加菜单项的方式增加菜单。需要注意的是,一级菜单只能有两个,而且设置的时候,只能先设置左边的菜单项内容,才能设置右边菜单项内容。

控件的使用也是有严格限制的。VS2008中能使用的控件分布在工具箱的“所有设备控件V2”、“公共设备控件 v2”、“设备容器 v2”、“设备菜单和工具栏V2”、“设备数据V2”、“设备组件V2”、“设备对话框V2”。使用控件的方式和Windows窗体的设计没有什么不同。

4         调试

调试程序的方式同普通的程序调试差别不大,也通过单步调试等等的功能。唯一的差别就在于调试中程序在仿真器中运行。

4.1      其他文件

在调试中,程序如果只有一个EXE文件,而不涉及到其他文件,可以直接在仿真程序中运行。但是如果程序还有其他文件的话,需要把文件也要部署到PDA仿真器上。如何部署其他文件,请参考下面步骤:

1. 通过仿真器上的菜单“文件――配置…”菜单设置共享文件夹。

通过后面的按钮,浏览电脑中的磁盘,并选择恰当的目录。“共享文件夹”在设置完成后,将作为PDA仿真器的扩展存储空间,仿真器中共享文件夹被命名为“Storage Card”。那么在仿真器中就可以直接操作共享文件夹中的文件。

这时候,就可以把其他和程序相关的文件拷贝到需要的地方。下面以一个XML文件为例。这个XML和程序的可执行程序在一个目录下,用来保存程序的设置参数。XML文件在电脑上,程序中通过读取可执行程序所在的目录来指定XML文件的目录。但是很不幸,仿真器在运行过程中,认为EXE可执行程序在“program files""项目名称”这个目录下,这个目录是仿真器中的路径,肯定是不会找到XML文件的。这就需要把XML文件也放置到“program files""项目名称”目录下面去。

在仿真器中点击“开始-资源管理器”,打开后选择“Storage Card”。在这个里面通过目录-文件的方式选中文件,然后点击下面的“菜单-编辑-复制”,将文件复制出来。

然后通过仿真器界面上的文件-目录功能,找到“我的设备-program files-项目名称”,进入以项目名称为名称的目录,通过“文件-编辑-粘帖”,把文件拷贝到可执行程序所在的运行目录下。

5         移动数据库

在这个项目中,使用的是微软的SQL SERVER Mobile Compact Editor 3.5。其他的数据库还没有使用过。仅仅就SQL SERVER Mobile Compact Editor 3.5的使用方法说明。

5.1      获得SQL SERVER Mobile Compact Editor 3.5

SQL SERVER Mobile Compact Editor 3.5可以直接从微软的网站上下载,网址为:http://www.microsoft.com/downloads/details.aspx?familyid=7849B34F-67AB-481F-A5A5-4990597B0297&displaylang=zh-cn

下载后在电脑上进行安装。默认安装到C:"Program Files"Microsoft SQL Server Compact Edition下。

3.5版本为最新版,增加了设置数据库文件密码的功能。也可以使用其他版本的SQL SERVER MOBILE替代。

5.2      在SQL SERVER MANAGER STUDIO中使用SQL SERVER MOBILE

在登录部分,服务器类型选择“SQL SERVER MOBILE”,数据库文件通过下拉框中的“浏览更多…”选择建立的数据库文件,也可以通过选择窗体中的“新建数据库”建立新的数据库。

输入数据库密码,即可登录到SQL SERVER MOBILE数据库中。需要说明的是,3.5版本建立的数据库,在SQL SERVER MANAGE STUDIO 2005中可能无法登录。

5.3      Sql server mobile数据库中建立数据表

Sql server mobile中建表可以通过sql server manage studio 2005中的建表向导进行建表,也可以通过sql语句进行建表。建表的时候需要注意字段类型和sql server中的字段类型并不相同,在sql server中能使用的字段类型,在sql server mobile中可能无法使用,在建表的过程中需要注意这点。

5.4      在智能设备上部署sql server Mobile数据库

把建好的数据库文件通过4.1中描述的方式,拷贝到相应的仿真器目录下。这时候仿真器就可以连接并操作SQL SERVER MOBILE数据库了。

但是如果使用PDA访问SQL SERVER MOBILE,注意Windows Mobile中不包含数据库引擎,需要额外的安装四个包。如果不安装这四个包,程序将无法连接和读取SQL SERVER MOBILE数据库。

这四个包在sql server mobile安装目录下,具体的是C:"Program Files"Microsoft SQL Server Compact Edition"v3.5"Devices"wce500"armv4i目录下面,包括:

sqlce.dev.CHS.ppc.wce5.armv4i.CAB

sqlce.ppc.wce5.armv4i.CAB

sqlce.repl.ppc.wce5.armv4i.CAB

sqlce.wce5.armv4i.CAB

将这四个文件拷贝到仿真器上,并安装。

安装后,PDA的程序中增加了三个程序: sqlservercompact 3.5 Repl

SqlserverCompact 3.5 Tools CN

SqlserverCompact 3.5 Core

当不用移动数据库时,可以卸载这三个程序。

6         智能设备连接操作PC数据库

智能设备操作PC数据库,有两种方式:

一种是通过无线连接,一种是通过USB连接到电脑上。无线连接在普通环境下使用普遍性不足,很多情况下是通过USB数据线进行连接的。使用USB数据线连接,PC电脑上需要安装同步工具,目前使用较多的为微软的ActiveSync,下载地址是;

http://www.microsoft.com/downloads/details.aspx?FamilyID=cabdb564-ae94-4c02-abbc-cdece61231d4&DisplayLang=zh-cn

智能设备和PC同步后,就可以把智能设备看作一台电脑,可以连接数据库。

7         数据库连接字符串

7.1   Sql server mobile

在工程中增加引用,引用System.data.sqlserverCe

类中使用命名空间:System.data.sqlserverCe

数据库链接类名、命令类名及记录集类名中都使用包含Ce的类。

具体代码如下:
using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlServerCe;

using System.Data.SqlClient;

namespace GPSDataReader

{

public partial class frmDamUp : Form

{

SqlCeConnection ConnMobile;

SqlCeCommand command;

public frmDamUp()

{

InitializeComponent();

}

private void frmDamUp_Load(object sender, EventArgs e)

{

//获取可执行程序所在目录和数据库文件

string sFilePath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + """DamBase.sdf";

//连接sql server Mobile数据库的连接字符串

string ConnStr = "Data Source=" + sFilePath + ";Persist Security Info=False;password=admin;";

//建立链接

ConnMobile = new SqlCeConnection(ConnStr);

try

{

ConnMobile.Open();

}

catch (Exception ex)

{

MessageBox.Show("不能正确连接移动数据库!" + ex.Message);

this.Close();

}

command = new SqlCeCommand();

command.Connection = ConnMobile;

string sqlstr = "select * from DamInfo where IsUP='1'";

command.CommandText = sqlstr ;

SqlCeDataReader rs = command.ExecuteReader();

while (rs.Read())

{

ListViewItem lv_Item = new ListViewItem();

lv_Item.Text = rs["RSID"].ToString();

lv_Item.SubItems.Add(rs["RSNM"].ToString());

lv_Item.SubItems.Add(rs["DMPRV"].ToString());

lv_Item.SubItems.Add(rs["DMCT"].ToString());

lv_Item.SubItems.Add(rs["DMTW"].ToString());

lv_Item.SubItems.Add(rs["EL"].ToString());

lv_Item.SubItems.Add(rs["NL"].ToString());

lv_Item.SubItems.Add("未上传");

lv_DamInfo.Items.Add(lv_Item);

}

rs.Close();

if (lv_DamInfo.Items.Count == 0)

{

MessageBox.Show("没有需要上传的数据!");

this.Close();

}

}

7.2      智能设备连接PC上的SQL SERVER
智能设备不支持OLEDB连接方式,只能使用SQLSERVER .Net的连接方式。所以增加System.data.SqlClient引用。在需要连接的类中增加System.data.SqlClient命名空间。

代码如下:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlServerCe;

using System.Data.SqlClient;

private void b_Down_Click(object sender, EventArgs e)

{

string sqlstr;

string Connstr = "user id=sa;password=2centit13;initial catalog=DamBase;Server=" + ConfigInfo.IP + ";Connect Timeout=30";

SqlConnection Conn = new SqlConnection(Connstr);

try

{

Conn.Open();

}

catch (Exception ex)

{

MessageBox.Show("无法连接到指定的PC数据库!" + ex.Message);

return;

}

}

转载于:https://www.cnblogs.com/doubleyan/archive/2009/05/17/2165055.html

[转]VS2008中开发智能设备程序的一些总结相关推荐

  1. VS2008中开发智能设备程序的一些总结

    原文链接:http://blog.csdn.net/citybug_nj/article/details/2598705 程序中包括四个部分: 系统配置 这个部分用来配置系统中的相关参数,参数包括数据 ...

  2. [转]VS2008中开发智能设备程序的一些总结收藏1

    本文转自:http://hi.baidu.com/netlmz/blog/item/724c34580522962d2834f01a.html 原文如下: 结合前几日开发的<全国大坝基础数据库采 ...

  3. VS2008中开发wince windows mobile 手持终端程序(PDA软件)

    VS2008中开发wince windows mobile 手持终端程序(PDA软件) 微软平台开发 wince或windows mobile 移动应用程序 跟.NET桌面开发环境 一样 唯一区别的 ...

  4. VS2008中开发手持终端程序(PDA软件)总结

    VS2008中开发手持终端程序(PDA手机软件)的项目总结 1程序结构 程序中包括四个部分: 1.系统配置 这个部分用来配置系统中的相关参数,参数包括数据库信息和串口的配置信息.这部分的主要技术是XM ...

  5. VS中开发Qt程序,控制台不弹出

    VS中开发Qt,控制台不弹出 用VS开发Qt应用程序的时候,使用std::cout发现控制台不弹出, 解决方案: 工程->属性->配置属性->链接器->系统->子系统中将 ...

  6. 【VR】(三)Unity3D中开发VR程序的流程

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 一.前言 最近做VR项目比较多,也学习了很多的东西,现在把开发的流程,已经用 ...

  7. VS2008中开发Silverlight 2.0的配置

    最近开始学Silverlight,还真是万事开头难,配置个开发环境弄了半天-到不是有多难,就是要下载太花时间了...(以下是用2.0版本说明) 安装Silverlight 2.0 的浏览器插件,用于播 ...

  8. 1.在VS2010中文版中开发WP7程序

    在安装wp7开发环境的时候如果你以前安装的VS2010是中文版的,那么安装好wp7开发环境后,在VS2010中不会看到wp7的开发模板.这需要一些设置. 1.在C:\Program Files\Mic ...

  9. 使用Visual Studio Code开发.NET程序

    Visual Studio Code 成为个人使用频率最高的应用程序了,层出不穷的插件为 Code 的应用场景提供了无限可能.本文介绍在 Visual Studio Code 中开发 .NET 程序的 ...

最新文章

  1. jPA自动创建数据库表的一些配置
  2. http的请求体body的几种数据格式
  3. Python字符集编码和文件读写
  4. centos 6.2 syslog-ng的配置
  5. HDU 1789 Doing Homework again(贪心)
  6. 怎么从转移特性曲线上看dibl_国民技术面试20200910
  7. librtmp usage
  8. 阿里云申请商标注册步骤详细教程
  9. 2018计算机考研国家线预测,2018考研国家线预测及解读-考研帮(kaoyan.com)
  10. 怎么在计算机网络上添加文件,教你win7如何设置网络共享文件夹
  11. 常规的几个API接口(也包括比价)
  12. 【短链接】——新浪、百度、搜狐等官方长链接转短链接
  13. CISSP 报名保姆级教程
  14. 互联网农民工没必要有优越感
  15. 公众号头条文章数据接口 API 简介与使用场景、调用方法
  16. std::accumulate的具体用法
  17. 在我方某前沿防守地域 matlab,[matlab]Monte Carlo模拟学习笔记
  18. 【HUI】AccordionMenu 手风琴菜单(基于jQuery)
  19. 量子计算机 中国科学院,中科院量子计算机取得重大突破
  20. Linux 系统下Oracle数据库自动备份

热门文章

  1. 软设考试笔记--UML建模
  2. java 实体类arraylist_如何实现Java的ArrayList经典实体类
  3. vue-cli 没有build如何配置_webpack4配置实现浏览器长期缓存
  4. ppct各代表什么_高瓷、瓷釉、玉化,三种绿松石有啥不同,各代表什么意思?...
  5. ASP.NET Web API中展示实体Link相关的方面
  6. JS将数字转换为带有单位的中文表示
  7. HDU1166 敌兵布阵 [线段树模板]
  8. Linux下运行Jmeter脚本
  9. cmd下的一些小技巧
  10. 福州大学软件工程1816 | W班 第7次作业成绩排名