zoukankan      html  css  js  c++  java
  • vs2008 C# Windows Mobile 智能设备开发 初步1

    一、软件安装

       1、安装Visual Studio2008

       2、安装 Microsoft ActiveSync

       3、安装 Microsoft SqlServer2005数据库

       4、安装IIS 5.x

    二、创建智能设备项目

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

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

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

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

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

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

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

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

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

    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”----出现如下图。如果没有成功,在设备仿真器管理器中重新连接,插入底座,重试一遍。

     

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

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

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

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

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

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

        

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

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

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

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

    添加的代码如下:

            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服务应用程序,如下图:

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

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

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

    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());
            }

    最终效果如下图:

     

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

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

    七、全部代码

    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());
            }
        }
    }
  • 相关阅读:
    Linux 运维工程师的十个基本技能点
    如何在 Ubuntu 15.04 系统中安装 Logwatch
    线性表的 链式存储
    线性表的 顺序存储
    数据结构 基础知识
    struct和typedef struct
    虚拟内存
    Spring AOP
    常量池、perm(持久代)、方法区、栈
    String类型的对象,是保存在堆里还是在栈里呢?
  • 原文地址:https://www.cnblogs.com/susuzhao/p/3535136.html
Copyright © 2011-2022 走看看