一、软件安装

   1、安装Visual Studio2008

   2、安装 Microsoft ActiveSync

   3、安装 Microsoft SqlServer2005数据库

   4、安装IIS 5.x

二、创建智能设备项目

   1、文件---新建---项目---智能设备---智能设备项目,如下图:

ios 智能设备开发 智能化设备开发_ios 智能设备开发

 2、点击确定------进入 “添加新智能设备项目”页面------选择 “设备应用程序”,如下图:

ios 智能设备开发 智能化设备开发_智能设备_02

3、点击 “确定”---进入项目页面,现在可以在Form框里拖放工具箱里的控件了,如下图:

ios 智能设备开发 智能化设备开发_sql_03

 4、在 vs2008菜单中选择“工具”---“设备仿真器管理器”-----进入到“设备仿真器管理器 ”页面,如下图:

ios 智能设备开发 智能化设备开发_sql_04

ios 智能设备开发 智能化设备开发_sql_05

5、选择和vs2008开发环境相应的 仿真器设备,这里选择“CHS Windows Mobile 5.0 Pocket PC R2 Emulator” ,右键----“连接”,出现如下画面:

ios 智能设备开发 智能化设备开发_sql_06

 6、在选择的“CHS Windows Mobile 5.0 Pocket PC R2 Emulator” 的仿真器设备上 右键----“插入底座” ,仿真器部署完毕,如下图所示,现在可以点击vs2008中的“生成解决方案”-----“启动调试” 来运行程序。

ios 智能设备开发 智能化设备开发_sql_07

 

三、使用同步软件ActiveSync将智能设备与PC机同步

1、打开ActiveSync软件,点击---“文件”----“连接设置”---进入连接设置页面,在连接设置页面中选择“允许连接到以下其中一个端口”----选择“DMA”---确定。如下图:

ios 智能设备开发 智能化设备开发_ios 智能设备开发_08

2、在vs2008中,“工具”-----“设备仿真器管理器”-----这里选择“CHS Windows Mobile 5.0 Pocket PC R2 Emulator” ,右键----“连接”,在模拟器启动后再次选择“CHS Windows Mobile 5.0 Pocket PC R2 Emulator”  右键------“插入底座” ,会出现ActiveSync软件的同步设置向导,在同步设置向导中最终点击完成。现在就可以利用同步软件ActiveSync连接到模拟器,实现数据同步。如下图:

ios 智能设备开发 智能化设备开发_sql_09

3、在模拟器Pocket PC --WM5.0 中,“开始”----“设置”----“连接”-----“网卡”-----“默认单位设置”----“AsyncMac NDISWAN Miniport”-----“使用服务器分配的IP地址”----“OK”-----“OK”。

4、在模拟器Pocket PC --WM5.0 中,“开始”----“设置”----“连接”----“连接”-----“高级”----“选择网络”----在程序自动连接到Internet时,使用:选择“单位设置”-----“OK”-----“OK”。

5、在模拟器Pocket PC --WM5.0 中,“开始”----“Inernet  Explorer”----出现如下图。如果没有成功,在设备仿真器管理器中重新连接,插入底座,重试一遍。

 

ios 智能设备开发 智能化设备开发_sql_10

 

四、智能设备中SqlCe数据库软件的安装、数据库表的创建

1、微软推出的针对嵌入式软件的数据库为SqlCe,如果在pc 上已经安装了SqlServer2005,SqlCe一般存在于SqlServer2005安装后的文件中。也可以直接下载SqlCe安装包。本次使用的是存在于SqlServer2005安装后的文件中SqlCe,如图所示:

ios 智能设备开发 智能化设备开发_System_11

2、在已经经过配置,使用同步软件ActiveSync将智能设备与PC同步后,在ActiveSync软件中点击 "浏览",出现如图界面:

ios 智能设备开发 智能化设备开发_ios 智能设备开发_12

3、直接把上述三个SqlCe安装包复制粘贴到移动设备里面。

4、在模拟器Pocket PC --WM5.0 中,"开始"----"程序"----"资源管理器" 里面找到刚才复制的那三个SqlCe安装包,依次分别双击安装。安装完成后就会在开始菜单中出现一个"Query Analyzer3.5 "查询分析器。单击"Query Analyzer3.5"进入到如下画面:

ios 智能设备开发 智能化设备开发_智能设备_13

5、在Query Analyzer3.5单击下面的三角型按钮

ios 智能设备开发 智能化设备开发_ios 智能设备开发_14

,进入Connect to SqlServer Compact页面,点击"New Database",选择相应的Sort,在Path中输入数据库名称或路径加数据库名称(注意输入法改成英文),在Password中输入密码。如下图所示,然后点击Create即可创建数据库如下图。

ios 智能设备开发 智能化设备开发_智能设备_15

    

ios 智能设备开发 智能化设备开发_System_16

6、点击

ios 智能设备开发 智能化设备开发_ios 智能设备开发_17

进入Table Definition页面,在Name中输入表名,如Student,点击"Insert Column"  输入Student表中的每个字段(注意输入法改成英文),最终如下图:

ios 智能设备开发 智能化设备开发_sql_18

 五、智能设备中SqlCe数据库的编程

1、在Form中添加三个button按钮 和 一个DataGrid控件。如图所示:

ios 智能设备开发 智能化设备开发_sql_19

 2、添加 System.Data.SqlClient  和 System.Data.SqlServerCe 引用,运行效果如下:

ios 智能设备开发 智能化设备开发_ios 智能设备开发_20

添加的代码如下:

private void btn_Add_Click(object sender, EventArgs e)//添加
        {
            //连接sql server Mobile数据库的连接字符串
            string connString = "Data Source='My Documents\\Test.sdf'; LCID=1033; Password=\"123456\"; Encrypt = TRUE;";
            //建立链接
            SqlCeConnection ConnMobile = new SqlCeConnection(connString);
            try
            {
                ConnMobile.Open();
            }
            catch (Exception ex)
            {
                MessageBox.Show("不能正确连接数据库!" + ex.Message);
                this.Close();
                throw;
            }
            string sql = "Insert into Student (ID,Name,Age) values (1,'小明',18)";
            SqlCeCommand command = new SqlCeCommand(sql, ConnMobile);
            int r = command.ExecuteNonQuery();
            if (r > 0)
            {
                MessageBox.Show("添加数据成功!");
            }
        }

查询的代码如下:

private void btn_Search_Click(object sender, EventArgs e)//查询
        {
            string connString = "Data Source='My Documents\\Test.sdf'; LCID=1033; Password=\"123456\"; Encrypt = TRUE;";

            SqlCeConnection ConnMobile = new SqlCeConnection(connString);
            try
            {
                ConnMobile.Open();
            }
            catch (Exception ex)
            {
                MessageBox.Show("不能正确连接数据库!" + ex.Message);
                this.Close();
                throw;
            }
            string sql2 = "select * from Student ";
            DataSet ds2 = new DataSet();

            SqlCeDataAdapter command = new SqlCeDataAdapter(sql2, ConnMobile);
            command.Fill(ds2, "ds");
            dataGrid1.DataSource = ds2.Tables[0];
        }

 六、智能设备仿真器与WebService通信

1、在vs2008中 ,文件---新建----项目-----visual C#-----Web----ASP.NET Web服务应用程序,如下图:

ios 智能设备开发 智能化设备开发_sql_21

2、在安装IIS的PC上,我的电脑----管理----Internet信息服务----网站----默认网站----在"默认网站"上新建 "虚拟目录",并进行相应的权限配置,虚拟目录的本地路径选择上面建立的WebService路径。如下图:

ios 智能设备开发 智能化设备开发_ios 智能设备开发_22

3、在智能设备项目中选中 "SmartDeviceProject" 右键---添加Web引用,在URL中填上相应的http地址,也可以修改web应用名,如下图:

ios 智能设备开发 智能化设备开发_智能设备_23

4、然后点击"添加引用",出现web References,如下图:

ios 智能设备开发 智能化设备开发_ios 智能设备开发_24

5、在已经经过配置,使用同步软件ActiveSync将智能设备与PC同步后,在上面的Form框中的 与WebServer通信按钮下添加代码如下:

private void button3_Click(object sender, EventArgs e)//与WebService通信
        {
            //添加Web引用的 Web引用名是什么就写什么,这里是localhost,可以改其他名字
            localhost.Service1 ws = new SmartDeviceProject.localhost.Service1();
            MessageBox.Show(ws.HelloWorld());
        }

 

最终效果如下图:

 

ios 智能设备开发 智能化设备开发_ios 智能设备开发_25

6、如果出现"无法连接远程网络"等类似错误,使用同步软件ActiveSync在vs2008的设备仿真器管理器中重新连接、插入底座。

7、所开发的程序文件存放在 模拟器Pocket PC --WM5.0 中,“开始”----“程序”---“资源管理器”---“Program Files”中,双击就可以打开,本文所制作的软件如下图:

ios 智能设备开发 智能化设备开发_智能设备_26

ios 智能设备开发 智能化设备开发_ios 智能设备开发_27

七、全部代码

using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Data.SqlServerCe;

namespace SmartDeviceProject
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btn_Add_Click(object sender, EventArgs e)//添加
        {
            //连接sql server Mobile数据库的连接字符串
            string connString = "Data Source='My Documents\\Test.sdf'; LCID=1033; Password=\"123456\"; Encrypt = TRUE;";
            //建立链接
            SqlCeConnection ConnMobile = new SqlCeConnection(connString);
            try
            {
                ConnMobile.Open();
            }
            catch (Exception ex)
            {
                MessageBox.Show("不能正确连接数据库!" + ex.Message);
                this.Close();
                throw;
            }
            string sql = "Insert into Student (ID,Name,Age) values (1,'小明',18)";
            SqlCeCommand command = new SqlCeCommand(sql, ConnMobile);
            int r = command.ExecuteNonQuery();
            if (r > 0)
            {
                MessageBox.Show("添加数据成功!");
            }
        }

        private void btn_Search_Click(object sender, EventArgs e)//查询
        {
            string connString = "Data Source='My Documents\\Test.sdf'; LCID=1033; Password=\"123456\"; Encrypt = TRUE;";

            SqlCeConnection ConnMobile = new SqlCeConnection(connString);
            try
            {
                ConnMobile.Open();
            }
            catch (Exception ex)
            {
                MessageBox.Show("不能正确连接数据库!" + ex.Message);
                this.Close();
                throw;
            }
            string sql2 = "select * from Student ";
            DataSet ds2 = new DataSet();

            SqlCeDataAdapter command = new SqlCeDataAdapter(sql2, ConnMobile);
            command.Fill(ds2, "ds");
            dataGrid1.DataSource = ds2.Tables[0];
        }

        private void button3_Click(object sender, EventArgs e)//与WebService通信
        {
            //添加Web引用的 Web引用名是什么就写什么,这里是localhost,可以改其他名字
            localhost.Service1 ws = new SmartDeviceProject.localhost.Service1();
            MessageBox.Show(ws.HelloWorld());
        }
    }
}