VS中开发手持终端程序讲述.docx
- 文档编号:27803867
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:22
- 大小:466.99KB
VS中开发手持终端程序讲述.docx
《VS中开发手持终端程序讲述.docx》由会员分享,可在线阅读,更多相关《VS中开发手持终端程序讲述.docx(22页珍藏版)》请在冰豆网上搜索。
VS中开发手持终端程序讲述
VS2008中开发手持终端程序(PDA手机软件)的项目总结
1程序结构
程序中包括四个部分:
1.系统配置
这个部分用来配置系统中的相关参数,参数包括数据库信息和串口的配置信息。
这部分的主要技术是XML文件的读取和写入。
2.数据下载
从数据库中下载数据到PDA,PDA上的保存也是使用数据库。
这部分的技术主要是PDA设备上的移动数据库开发和使及用PDA连接PC数据库
3.数据上传
把PDA上的数据上传到PC数据库中,使用的技术和2相同。
4.GPS数据获取
通过外置蓝牙GPS模块获取当时所在位置的经纬度,并将经纬度保存在PDA上的移动数据库中。
涉及到的技术有串口数据的读取,GPS数据的解析。
2开发环境
软件环境:
Visualstudio2008
PC数据库:
sqlserver
智能设备:
WindowsMobile6
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仿真器的扩展存储空间,仿真器中共享文件夹被命名为“StorageCard”。
那么在仿真器中就可以直接操作共享文件夹中的文件。
这时候,就可以把其他和程序相关的文件拷贝到需要的地方。
下面以一个XML文件为例。
这个XML和程序的可执行程序在一个目录下,用来保存程序的设置参数。
XML文件在电脑上,程序中通过读取可执行程序所在的目录来指定XML文件的目录。
但是很不幸,仿真器在运行过程中,认为EXE可执行程序在“programfiles//项目名称”这个目录下,这个目录是仿真器中的路径,肯定是不会找到XML文件的。
这就需要把XML文件也放置到“programfiles//项目名称”目录下面去。
在仿真器中点击“开始-资源管理器”,打开后选择“StorageCard”。
在这个里面通过目录-文件的方式选中文件,然后点击下面的“菜单-编辑-复制”,将文件复制出来。
然后通过仿真器界面上的文件-目录功能,找到“我的设备-programfiles-项目名称”,进入以项目名称为名称的目录,通过“文件-编辑-粘帖”,把文件拷贝到可执行程序所在的运行目录下。
5移动数据库
在这个项目中,使用的是微软的SQLSERVERMobileCompactEditor3.5。
其他的数据库还没有使用过。
仅仅就SQLSERVERMobileCompactEditor3.5的使用方法说明。
5.1获得SQLSERVERMobileCompactEditor3.5
SQLSERVERMobileCompactEditor3.5可以直接从微软的网站上下载,网址为:
下载后在电脑上进行安装。
默认安装到C:
/ProgramFiles/MicrosoftSQLServerCompactEdition下。
3.5版本为最新版,增加了设置数据库文件密码的功能。
也可以使用其他版本的SQLSERVERMOBILE替代。
5.2在SQLSERVERMANAGERSTUDIO中使用SQLSERVERMOBILE
在登录部分,服务器类型选择“SQLSERVERMOBILE”,数据库文件通过下拉框中的“浏览更多…”选择建立的数据库文件,也可以通过选择窗体中的“新建数据库”建立新的数据库。
输入数据库密码,即可登录到SQLSERVERMOBILE数据库中。
需要说明的是,3.5版本建立的数据库,在SQLSERVERMANAGESTUDIO2005中可能无法登录。
5.3Sqlservermobile数据库中建立数据表
Sqlservermobile中建表可以通过sqlservermanagestudio2005中的建表向导进行建表,也可以通过sql语句进行建表。
建表的时候需要注意字段类型和sqlserver中的字段类型并不相同,在sqlserver中能使用的字段类型,在sqlservermobile中可能无法使用,在建表的过程中需要注意这点。
5.4在智能设备上部署sqlserverMobile数据库
把建好的数据库文件通过4.1中描述的方式,拷贝到相应的仿真器目录下。
这时候仿真器就可以连接并操作SQLSERVERMOBILE数据库了。
但是如果使用PDA访问SQLSERVERMOBILE,注意WindowsMobile中不包含数据库引擎,需要额外的安装四个包。
如果不安装这四个包,程序将无法连接和读取SQLSERVERMOBILE数据库。
这四个包在sqlservermobile安装目录下,具体的是C:
/ProgramFiles/MicrosoftSQLServerCompactEdition/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的程序中增加了三个程序:
sqlservercompact3.5Repl
SqlserverCompact3.5ToolsCN
SqlserverCompact3.5Core
当不用移动数据库时,可以卸载这三个程序。
6智能设备连接操作PC数据库
智能设备操作PC数据库,有两种方式:
一种是通过无线连接,一种是通过USB连接到电脑上。
无线连接在普通环境下使用普遍性不足,很多情况下是通过USB数据线进行连接的。
使用USB数据线连接,PC电脑上需要安装同步工具,目前使用较多的为微软的ActiveSync,下载地址是;
智能设备和PC同步后,就可以把智能设备看作一台电脑,可以连接数据库。
7数据库连接字符串
7.1Sqlservermobile
在工程中增加引用,引用System.data.sqlserverCe
类中使用命名空间:
System.data.sqlserverCe
数据库链接类名、命令类名及记录集类名中都使用包含Ce的类。
具体代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlServerCe;
usingSystem.Data.SqlClient;
namespaceGPSDataReader
{
publicpartialclassfrmDamUp:
Form
{
SqlCeConnectionConnMobile;
SqlCeCommandcommand;
publicfrmDamUp()
{InitializeComponent();}
privatevoidfrmDamUp_Load(objectsender,EventArgse)
{
//获取可执行程序所在目录和数据库文件
stringsFilePath=System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)+"";
//连接sqlserverMobile数据库的连接字符串
stringConnStr="DataSource="+sFilePath+";PersistSecurityInfo=False;password=admin;";
//建立链接
ConnMobile=newSqlCeConnection(ConnStr);
try
{ConnMobile.Open();}
catch(Exceptionex)
{
MessageBox.Show("不能正确连接移动数据库!
"+ex.Message);
this.Close();
}
command=newSqlCeCommand();
command.Connection=ConnMobile;
stringsqlstr="select*fromDamInfowhereIsUP='1'";
command.CommandText=sqlstr;
SqlCeDataReaderrs=command.ExecuteReader();
while(rs.Read())
{
ListViewItemlv_Item=newListViewItem();
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上的SQLSERVER
智能设备不支持OLEDB连接方式,只能使用SQLSERVER.Net的连接方式。
所以增加System.data.SqlClient引用。
在需要连接的类中增加System.data.SqlClient命名空间。
代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlServerCe;
usingSystem.Data.SqlClient;
privatevoidb_Down_Click(objectsender,EventArgse)
{
stringsqlstr;
stringConnstr="userid=sa;password=2centit13;initialcatalog=DamBase;Server="+ConfigInfo.IP+";ConnectTimeout=30";
SqlConnectionConn=newSqlConnection(Connstr);
try
{Conn.Open();}
catch(Exceptionex)
{
MessageBox.Show("无法连接到指定的PC数据库!
"+ex.Message);
return;
}
C#最简单最完整的webservice实例
我做java,但最近接触crm所以必须研究一下C#中的webservice以备后用,其实就是个新手,哈哈,这个实例是我在参考了网上诸多不完整的例子的情况下,自己摸索完成的。
期间遇到过一系列的棘手的问题,经过个人努力终于解决了。
我把整个步骤都写完整了,以供以后像我这样的C#新手少走弯路,程序很简单,过程有点长,希望有耐心,对于入门还是有些帮助的。
如果博客中没附上源码的【原因可能没法添加源码】,可以留言或邮箱我来发送给大家。
一、环境
我的开发环境是xp的sp3,这个对于的要求是v2.0.50727
如果不是的话会报错,可以到本地的
C:
\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe-i
运行即可。
如果自己的已经安装过的就可以跳过,否则在webservic的调试中会报一下错:
名称以无效字符开头。
处理资源'http:
//localhost/ws/Service.asmx'时出错。
第1行,位置:
2
其次,需要安装IIS,我测试的版本是iis5.1,本来装了iis6但是用不了,所以版本也很重用,本人在次耗费了部分心血。
如果不清楚版本可以看看百科里的描述以作决定的参考:
二、程序
这个过程总共建立2个独立的项目:
一个webservice项目,一个调用。
1建立和部署webservice项目:
用vs2008新建webservicesT:
注意是ASP.NETWeb服务应用程序
之后系统会自动生成一个类似于helloworld的一个简单例子:
打开之后,可以看到
至此最简单的webservice就建立好了。
我们不需要做任何事情,就用他来测试。
接着需要对整个工程“生成”和发布。
生成只要右键点击项目选择“生成”即可。
发布也一样,如下截图。
把发布的文件拷到iis工作路径中,并把这个文件夹“web共享”。
在资源管理器中:
web
共享:
在iis中查看,我建的文件名为sv:
最后来查看一下是不是部署成功,可以在ie地址栏中输入相关的url:
我涉及的urlhttp:
//localhost/sv/Service1.asmx
成功的话可以看到下面的截图
然后点击“HelloWorld”链接:
然后点击“HelloWorld”链接,就可以最终的页面显示的xml内容:
这样表示整个
webservice的建立和部署是成功的。
2接下来建立对webservice的调用调试。
我是建立了一个web应用项目来调用测试的。
步骤跟建立webservice项目类似,
注意选择好类型如图:
其次,最重要的一步就是引用webservice,
项目右键选择“添加web引用”,可以看到下图:
填入之前建立的webservice对应的url,此处是http:
//localhost/sv/Service1.asmx
点击前往即可:
然后把往“Web引用名”中填入一个名字,我填的是kiss,这个名字比较重要,因为下面的步骤中要使用他,当然你可以任意,但请记住。
然后在后台中写入调用的方法页面也加入触发事件:
后台代码:
usingSystem;
usingSystem.Collections;
usingSystem.Configuration;
usingSystem.Data;
usingSystem.Linq;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.HtmlControls;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Xml.Linq;
namespacewbcall
{
publicpartialclass_Default:
System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{}
publicstringGetString()
{kiss.Service1n=newkiss.Service1();
stringss=n.HelloWorld();
returnss;
}
}
}
前台代码:
<%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="Default.aspx.cs"Inherits="wbcall._Default"%>
DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http:
//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
//www.w3.org/1999/xhtml">
functionB()
{
vara="<%=GetString()%>";
alert(a);
}
kkkk