MSSQL Server Compact 艾德ition 程序建构步骤

核心提示:在创建应用程序之前,必须在 SQL Server 2005 中配置发布

使用 SQL Server Mobile 创建移动应用程序 

1.SQL Server Mobile 简介
2.获取 SQL Server Mobile
3.安装必备软件
4.安装开发环境
5.安装服务器环境
6.配置 Web 同步向导
7.使用 Internet Explorer 检查 SQL Server Mobile 服务器代理配置

最近重新查看微软MvcMusicStore-v3.0的源代码,发现忽略了很多重要的东西,特别是数据访问那一部分。

SQL Server 2005 任务

在此演练中,您将学习如何在使用 SQL Server 2005 Mobile Edition (SQL
Server Mobile) 的 Visual Studio 2005 中创建应用程序。SQL Server Mobile
数据库将作为 SQL Server 2005
发布的订阅服务器,并使用合并复制来交换信息。

8.使用SQL Server Mobile 数据库

首先Microsoft SQL Server Compact 4.0 详细的介绍和下载地址
链接:

在创建应用程序之前,必须在 SQL Server 2005
中配置发布。在下列步骤中,您将创建一个示例数据库,然后从该数据库发布数据。您将使用预建的脚本文件创建数据库,然后使用新建发布向导来创建发布。

在此演练中,您将执行下列任务:

1.SQL Server Mobile 简介

SQL Server Mobile 是一种
专为开发基于 Microsoft Windows Mobile 的设备的开发人员
而提供的移动数据库平台。

Microsoft SQL Server 2005 Mobile Edition (SQL Server Mobile)
(以前称为 Microsoft SQL Server 2000 Windows CE Edition 2.0 (SQL Server
CE))
将 Microsoft 企业解决方案扩展到设备上的行业和个人信息管理 (PIM)
应用程序,
为开发人员进行快速应用程序开发提供了一致的编程模型。

SQL Server Mobile 以很小的内存开销提供了所需的关系数据库功能:
可靠的数据存储、优化查询处理器,以及可靠、可伸缩的连接功能。

通常,Microsoft SQL Server 2005 Mobile Edition (SQL Server Mobile)
作为应用程序的一部分应用。
在这种应用程序中,
数据是在台式机上的 Microsoft SQL Server 和支持的设备上的 SQL Server
Mobile 之间进行分发的。

但是,SQL Server Mobile 也可以用作个人信息管理 (PIM) 工具或者
所支持设备上的其他应用程序的独立数据库。

Microsoft
SQL Server Compact 4.0
是一种免费的嵌入式数据库,软件开发人员可以使用它来构建 ASP.NET 网站和
Windows 桌面应用程序。SQL Server Compact 4.0
的优点是:占用的空间小,支持在应用程序文件夹中专门部署其二进制文件,轻松地使用
Visual Studio 和 WebMatrix
进行应用程序开发,以及无缝地将架构和数据迁移到 SQL Server。

创建数据库并在其中填充数据

  1. 配置 SQL Server 2005 发布。
  2. 配置 Internet 信息服务 (IIS) 以进行复制。
  3. 创建 SQL Server Mobile 订阅。
  4. 创建应用程序。
  5. 部署应用程序并测试订阅。

2.获取 SQL Server Mobile

获取 SQL Server Mobile 的方式有以下三种:

(1).集成到 SQL Server 2005 中。
    C:Program FilesMicrosoft SQL Server
       90ToolsBinnVSShellCommon7IDEsqlce30setupen.msi

(2).集成到 Microsoft Visual Studio 2005 中。
    C:Program FilesMicrosoft Visual Studio 8
       SmartDevicesSDKSQL ServerMobilev3.0Sqlce30setupcn.msi

(3).从 Microsoft 网站进行下载。
    有关从网站下载 SQL Server Mobile 的详细信息,
      请参阅 Microsoft SQL Server 2005 Mobile Edition
Home
          Microsoft SQL Server 2005 Mobile Edition 主页。

为什么会想要用Microsoft
SQL Server Compact
4.0这个嵌入式的数据库,是用为有时为了查看或者实现一些简单的效果,又不得不装SQL
Server 2008或者2010很麻烦,而Microsoft SQL Server Compact
4.0建立的以.sdf的数据库文件就没有这些限制所以………

准备服务器以发布数据

图片 1必备项

3.安装必备软件

在安装 Microsoft SQL Server 2005 Mobile Edition (SQL Server Mobile)
组件之前,
必须在台式机上安装下列软件

a. 开发计算机以及运行 IIS 的计算机(如果打算与 SQL Server
进行数据交换)
   的操作系统应为 Microsoft Windows 2000 SP4 或更高版本、
   Microsoft Windows XP Professional SP1
   或更高版本或者 Microsoft Windows Server 2003。

   如果安装的是 Windows XP SP2,若要使用 SQL Server Mobile 连接,
   必须启用 HTTP 访问。
   默认设置为禁用 HTTP 访问。若要启用 HTTP 访问,请执行下列操作:
       打开“控制面板”。
       单击 Windows 防火墙图标。
       单击“高级”。
       在“网络连接设置”区域中单击“设置”。
       选中“Web 服务器(HTTP)”复选框。
       单击“确定”以确认更改。

b.运行 IIS 的计算机上需要安装 Microsoft .NET Framework 2.0
或更高版本。
  .NET Framework 将随 Microsoft Visual Studio 2005 和 SQL Server 2005
一起安装。
   若要从 Microsoft 网站下载 .NET Framework 2.0,
   请参阅 .NET Framework 2.0 Download Center。

c.开发环境及服务器环境中需要安装 Microsoft ActiveSync 4.0 或更高版本。
  ActiveSync 可以从 ActiveSync Download 免费下载。

其次是SQL
Server Compact Toolbox 
这个VS的扩展插件也是无意中发现,使用它可以创建SQL Server Compact
4.0的.sdf数据库文件,不过我现在也只知道使用sql
语句建立表和增删查改等操作,还需进一步学习……..

在创建发布之前,必须创建快照代理用户帐户,并创建一个将在其中存储快照文件的共享文件夹,准备服务器以进行发布。创建快照文件夹之后,该文件夹将用于服务器上的所有发布。如果以前已在此服务器上创建了发布,您可以跳过这些步骤。

若要按照此演练中所写的内容执行此演练,您需要满足下列条件:

4.安装开发环境

Visual Studio
使用 Visual Studio 进行开发,可以最便捷地生成和部署使用 SQL Server
Mobile 的应用程序。

在 Visual Studio 中,您可以通过使用 C# 或 Microsoft Visual Basic
来创建托管应用程序,
并且可以通过使用 Visual C++ for Devices 选件来创建本机应用程序。

在 Microsoft .NET Compact Framework 应用程序中,
添加对 System.Data.SqlServerCe 命名空间的引用。
System.Data.SqlServerCe 命名空间将在 .NET Compact Framework 中显示 SQL
Server Mobile。

然后,您可以创建数据库、数据库表和列,并用数据填充数据库。

当生成引用 System.Data.SqlServerCe 命名空间的 .NET Compact Framework
应用程序时,
如果该应用程序部署到智能设备或 Pocket PC 模拟器上,
Visual Studio 将自动进行检查,
以查看该设备是否安装了 .NET Compact Framework 和 SQL Server Mobile
客户端组件。
如果未检测到这些组件,
则会在您首次部署引用 System.Data.SqlServerCe
命名空间的应用程序时自动在设备上安装这些组件。

.NET Compact Framework 还包含 System.Data.SqlClient 命名空间,
用于开发直接访问 SQL Server 2000 或更高版本中数据库的应用程序。

若要将应用程序部署到智能设备,
请在 Visual Studio 2005 中的“调试”菜单上选择“启动”。
然后选择部署到连接的智能设备还是 Pocket PC 模拟器。
设备上的默认安装位置是 Windows。

如果从 Visual Studio 中部署应用程序,
将不必在设备上单独安装 SQL Server Mobile 组件或 .NET Compact Framework。

图片 2

创建快照用户帐户

  • 安装有 Windows XP 和 IIS 的计算机
  • Visual Studio 2005
  • SQL Server 2005,与 Visual Studio 安装在同一台计算机上

5.安装服务器环境

如果 Microsoft SQL Server 2005 Mobile Edition (SQL Server Mobile)
应用程序
要求在 Microsoft SQL Server 数据库和 SQL Server Mobile
数据库之间交换数据,
则必须安装并配置以下各项:
* Microsoft Internet 信息服务 (IIS)
* SQL Server 2005 或 SQL Server 2000
* SQL Server Mobile 服务器工具(安装工具)

SQL Server Mobile 环境可以配置为单服务器环境或多服务器环境。
在单服务器环境中,所有组件在一台计算机上。
在多服务器环境中,IIS 和 SQL Server 在不同的计算机上。

根据图中所示,安装完成后重启VS就可以在菜单的工具中找打,并打开使用。

创建快照文件夹

图片 3SQLServer 2005
任务

6.配置 Web 同步向导

单击“开始”,指向“所有程序”,
指向“Microsoft SQL Server 2005 Mobile Edition”,
然后单击“配置 Web 同步向导”。

最后是ADO.NET Entity Framework 4.1 
下载地址:

创建发布

在创建应用程序之前,必须在 SQL Server 2005
中配置发布。在下列步骤中,您将创建一个示例数据库,然后从该数据库发布数据。您将使用预建的脚本文件创建数据库,然后使用新建发布向导创建发布。

7.使用 Internet Explorer 检查 SQL Server Mobile 服务器代理配置

在 Internet Explorer 中,
输入 SQL Server Mobile 服务器代理的 URL
(例如 sqlce 为虚拟目录)。
如果 SQL Server Mobile 服务器代理配置正确,
Internet Explorer 将显示字符串“SQL Server Mobile 服务器代理 3.0”。

通过在 URL 结尾处使用 ?diag 和 ?stat
参数,您可以查找诊断和统计详细信息。

下载安装后,在项目中引用后即可使用

设置权限

图片 4创建数据库并在其中填充数据

8.使用SQL Server Mobile 数据库

您可以创建或连接到 设备或台式机上的 
Microsoft SQL Server 2005 Mobile Edition (SQL Server Mobile) 数据库。

SQL Server Mobile 数据库存储在扩展名为 .sdf 的文件中。
该文件包含数据库的完整内容,最大可以为 4 GB。

SQL Server Mobile 可以访问和修改智能设备以及 Tablet PC 上的数据库文件。

通过使用 SQL Server Management Studio
和其他工具,它还支持在台式机上使用。

* 通过使用 ADO .NET 或 OLE DB API 函数,采用编程方式
* 通过在某个设备上使用 SQL Server Mobile 查询分析器
* 通过在台式机上使用 SQL Server Management Studio

通过使用 SQL Server Management Studio 或 Transact-SQL 语句,
您可以连接到台式机上的现有数据库。
还可以使用台式机创建和修改数据库。
然后,可以使用对象树以树层次结构查看该数据库的设计。
每个节点具有快捷菜单,菜单上的命令用于修改数据库或检索数据库的相关信息。

可以在 SQL Server Mobile 数据库中执行的一些功能包括:

* 创建、删除和编辑表及其关联的数据。
* 创建、维护和删除索引。
* 检查信息架构视图和数据类型。
* 初始化复制和远程数据访问 (RDA) 同步。

可以将 Transact-SQL 命令(包括数据操作语言 (DML)、
数据定义语言 (DDL) 和函数)用于 SQL Server Mobile 数据库。

还可以将复制或 RDA 用于通过本机和托管的 API 公开的数据库。

图片 5

您必须为快照代理帐户和 IIS 匿名用户帐户授予权限。还必须将 IIS
匿名用户帐户添加到发布访问列表 (PAL) 中。

  1. 打开 SQL Server Management Studio。

  2. 当提示您连接服务器时,请在“服务器名称”中键入
    (local),然后单击“连接”。

  3. 打开一个新查询窗口。创建一个 SQLMobile
    数据库,并在该数据库中填充数据。

    USE master;
        GO
        DROP Database SQLMobile;
        GO
        CREATE DATABASE SQLMobile;
        GO
        USE SQLMobile;
        GO
        CREATE TABLE MembershipData (MemberID INTEGER IDENTITY (1,1) CONSTRAINT pkMemberID PRIMARY KEY, MemberName NVarChar (50));
        CREATE TABLE FlightData (MemberID INTEGER FOREIGN KEY REFERENCES MembershipData(MemberID), Destination NVarChar (50), FlightStatus NVarChar(50), ArrivalDate DATETIME, FlownMiles INTEGER);
        INSERT INTO MembershipData (MemberName) VALUES ('Mr Don Hall');
        INSERT INTO MembershipData (MemberName) VALUES ('Mr Jon Morris');
        INSERT INTO MembershipData (MemberName) VALUES ('Ms TiAnna Jones');
        INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles) VALUES (1, 'Seattle', 'Flight Delayed 1 hour', '8/25/00', '20000');
        INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles) VALUES (2, 'London', 'Flight on time', '9/12/00', '15000');
        INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles) VALUES (3, 'Sydney', 'Flight Gate Closing', '11/5/00', '30000');
        INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles) VALUES (1, 'Tokyo', 'Delayed Fog', '5/25/00', '25000');
        INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles) VALUES (2, 'Minneapolis', 'Flight on time', '5/1/00', '1000');
        INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles) VALUES (3, 'Memphis', 'Flight Gate Closing', '1/5/00', '1000');
    
  4. 单击“执行(!)”运行该脚本并创建数据库。此时,将运行该脚本,创建一个名为
    SQLMobile 的新数据库。

    注意:
    您还可以按 F5,或者从“查询”菜单中选择“执行”来运行该查询。

     

     

  5. 若要确认已创建该数据库,请在对象资源管理器中,依次展开“(本地)”、“数据库”和“SQLMobile”。如果未列出该
    SQLMobile
    数据库,请通过右键单击“数据库”,再选择“刷新”,来更新数据库列表。

这里EF的具体教程就不多说了,博客园一搜一大堆。

设置数据库权限

准备服务器以发布数据

在创建发布之前,必须创建快照代理用户帐户,并创建一个将在其中存储快照文件的共享文件夹,准备服务器以进行发布。创建快照文件夹之后,该文件夹将用于服务器上的所有发布。如果以前已在此服务器上创建了发布,您可以跳过这些步骤。

图片 6创建快照用户帐户

  1. 在“开始”菜单上,右键单击“我的电脑”,然后选择“管理”。

  2. 在“计算机管理”中,展开“系统工具”,展开“本地用户和组”,右键单击“用户”,然后选择“新用户”。

  3. 在“新用户”对话框中,键入以下信息,然后单击“创建”:

示例项目如下:

授予发布权限

字段

用户名

snapshot_agent

密码

p@ssw0rd

确认密码

p@ssw0rd

用户下次登录时须更改密码

未选中

密码永不过期

选中

重要事项:
这些设置仅用于测试。在生产环境中,请确保用户帐户设置符合您的网络安全性要求。许多情况下,对于快照代理您将使用域用户帐户而不是使用本地用户帐户。

 

 

图片 7创建快照文件夹

  1. 在 Windows
    资源管理器中,创建一个名为“snapshot”的新文件夹。在此演练中,您可以在驱动器
    C
    的根目录下创建该文件夹:c:snapshot。右键单击“快照”文件夹,选择“共享和安全”。

  2. 在“共享”选项卡上,选择“共享该文件夹”,然后单击“权限”。

  3. 在“快照的权限”中,单击“添加”。

  4. 在“输入要选择的对象名称”中,键入 computernamesnapshot_agent(其中
    computername 是您本地计算机的名称),然后单击“确定”。

  5. 在“快照的权限”中,选择“snapshot_agent”,分配“更改”和“读取”共享权限,然后单击“确定”。

  6. 选择“安全”选项卡。

  7. 单击“添加”。

  8. 在“输入要选择的对象名称”中,键入 computernamesnapshot_agent(其中
    computername 是您本地计算机的名称),然后单击“确定”。

  9. 选择“snapshot_agent”,然后将“写入”权限添加到允许的权限列表中。现在,snapshot_agent
    帐户将被授予下列权限:

    • 读取和运行
    • 列出文件夹目录
    • 读取
    • 写入
  10. 单击“确定”关闭“快照属性”窗口。

  11. 关闭 Windows 资源管理器。

图片 8创建发布

  1. 在对象资源管理器中,展开“(本地)”节点(如果当前尚未展开),然后展开“复制”。

  2. 右键单击“发布”文件夹,然后选择“新建发布”。

  3. 在新建发布向导简介屏幕上,单击“下一步”。

  4. 如果以前未曾在此计算机上创建发布,将提示您配置分发服务器。选择第一个选项将本地计算机作为它自己的分发服务器,然后单击“下一步”。

  5. 如果以前未曾在此计算机上创建发布,将提示您指定快照文件夹。键入在前面过程中创建的快照文件夹的共享路径。以
    \servernameshare
    格式键入共享路径,不要键入本地路径。在此演练中,我们建议您键入
    \computersnapshot(其中 computer
    是您计算机的名称),然后单击“下一步”。

  6. 在数据库列表中,选择“SQLMobile”,然后单击“下一步”。

  7. 在发布类型列表中,选择“合并发布”,然后单击“下一步”。

  8. 在“订阅服务器类型”页中,选择“是”启用对 SQL Server Mobile
    订阅服务器的支持,然后单击“下一步”。

  9. 在要发布的对象列表中,选中“表”复选框。如果展开“表”,您将发现
    SQLMobile 数据库中的两个表都已被选中。单击“下一步”。

  10. 会通知您将向表中添加唯一标识符。所有合并项目都需要一个
    uniqueindentifier 列。单击“下一步”。

  11. 在“筛选表行”页中,现在即可添加对已发布数据的筛选器。对于此演练,您将无需筛选数据。单击“下一步”。

  12. 在“快照代理”页中,您可以配置创建快照的时间以及快照代理运行的频率。单击“下一步”以接受默认设置。

  13. 在“代理安全性”对话框中,单击“安全设置”。

    1. 在“快照代理安全性”对话框中,输入前面过程中所创建帐户的登录信息。进程帐户为
      computer_namesnapshot_agent(其中 computer_name
      是您计算机的名称),密码为 p@ssw0rd。
    2. 单击“确定”以保存设置。
    3. 在“代理安全性”页中,单击“下一步”。
  14. 在“向导操作”屏幕上,您可以确定创建发布的时间以及是否希望创建脚本文件。单击“下一步”以接受默认选择。

  15. 在“完成该向导”屏幕上,键入 SQLMobile
    作为发布的名称,然后单击“完成”。

  16. 将创建发布。向导完成后,单击“关闭”。

图片 9

创建发布快照

保护发布的安全性

若要保护发布,您必须首先向数据库安全列表中添加 IIS
匿名用户帐户,然后将该帐户添加到发布访问列表 (PAL) 中。

图片 10保护发布

  1. 在对象资源管理器中,展开“安全性”,右键单击“登录”,然后选择“新建登录”。

  2. 在“新建登录”对话框中,选择“Windows 身份验证”,键入
    computernameiusr_computername(其中 computername
    是您计算机的名称)。

  3. 在导航窗格中,选择“数据库访问”窗格。

  4. 在数据库列表中,选择“SQLMobile”,然后单击“确定”。

  5. 在对象资源管理器中,展开“复制”,展开“发布”,右键单击“SQLMobile:SQLMobile”发布,然后选择“属性”。

  6. 在导航窗格中,选择“发布访问列表”。

  7. 单击“添加”。在“添加发布访问项”对话框中,列出了 IUSR
    帐户。选择该帐户,然后单击“确定”。

  8. 请确保 IUSR 帐户当前位于 PAL 中,然后单击“确定”。

图片 11配置 IIS 和 SQLServer 2005
以进行 Web
同步

既然 SQL Server 已经配置了发布,您必须使该发布可以由 SQL Server Mobile
客户端通过网络进行访问。SQL Server Mobile 通过 IIS 连接到 SQL
Server。特别是,您可以创建并配置一个虚拟目录,以允许客户端访问 SQL
Server Mobile 服务器代理。

图片 12安装 SQLServer Mobile
服务器组件

  1. 在 Windows 资源管理器中,导航到以下目录:

    C:Program FilesMicrosoft SQL
    Server90ToolsBinnVSShellCommon7IDE

  2. 双击 sqlce30setupen.msi 运行安装程序。

  3. 在“安装”向导的简介屏幕上,单击“下一步”。

  4. 阅读并接受 EULA 条款,然后单击“下一步”。

  5. 在“系统配置检查”屏幕上,确保所有项都通过检查。如果尚未安装 SQL
    Server 2000,将列出该列表的最后一项作为警告。因为您正在使用 SQL
    Server 2005,这并不是问题。单击“下一步”。

  6. 在接下来的屏幕上,单击“下一步”,然后单击“安装”开始安装。

  7. 单击“Finish”。

图片 13配置发布以进行 Web
同步

  1. 在 SQL Server Management Studio
    的对象资源管理器中,展开“(本地)”计算机节点。

  2. 右键单击“复制”文件夹,然后选择“配置 Web 同步”。

  3. 在该向导的简介屏幕上,单击“下一步”。

  4. 在“订阅服务器类型”屏幕上,选择“SQL Server Mobile
    Edition”,然后单击“下一步”。

  5. 在“Web 服务器”屏幕的“运行 IIS
    的计算机”文本框中,键入您计算机的名称(如果尚未提供),然后单击“创建新的虚拟目录”。

  6. 在显示的树中,展开该计算机,展开“网站”,然后选择“默认网站”。

  7. 单击“下一步”。

  8. 在“虚拟目录信息”屏幕上的“别名”文本框中,键入
    SQLMobile,然后单击“下一步”。

  9. 在“客户端身份验证”屏幕上,选择“客户端将以匿名方式进行连接”,然后单击“下一步”。

  10. 在“匿名访问”屏幕上,单击“下一步”接受默认设置。

  11. 在“快照共享访问”屏幕上,键入 \computersnapshot(其中 computer
    是您计算机的名称),然后单击“下一步”。

    如果收到快照共享为空的警告,请单击“是”。

  12. 单击“Finish”。

  13. 单击“关闭”。

图片 14SQLServer Mobile
任务

在部署将要使用 SQL Server Mobile 的应用程序之前,预先创建 SQL Server
Mobile 数据库和订阅通常会节省时间。SQL Server Management Studio
允许您在本地计算机上创建并使用 SQL Server Mobile
数据库。然后,您可以在开发应用程序时使用此数据库。

图片 15创建新的 SQLServer Mobile
数据库

  1. 在 SQL Server Management Studio
    的对象资源管理器中,单击“连接”,然后选择“SQL Server Mobile”。

  2. 在“数据库文件”字段中,选择“<新建数据库…>”。

  3. 在文件名文本框中,键入 c:sqlmobile.sdf,然后单击“确定”。

  4. 在“连接到服务器”对话框中,单击“连接”。

    将在对象资源管理器中添加名为“SQL Server Mobile [My
    Computer…sqlmobile]”的新节点。

图片 16创建新的订阅

  1. 在对象资源管理器中,展开“SQL Server
    Mobile”节点,展开“复制”,右键单击“订阅”,然后选择“新建订阅”。

  2. 在简介屏幕上,单击“下一步”。

  3. 在“选择发布”屏幕的“发布服务器”下拉列表中,选择“<查找 SQL Server
    发布服务器…>”。

  4. 在“连接到服务器”对话框,键入或选择本地计算机,然后单击“连接”。

  5. 在“选择发布”屏幕的发布列表中,展开“SQLMobile”,选择“SQLMobile”发布,然后单击“下一步”。

  6. 在“标识订阅”屏幕上,为订阅名称键入 SQLMobile,然后单击“下一步”。

  7. 在“Web 服务器身份验证”屏幕上,键入前面过程中创建的虚拟目录的
    URL。在此演练中,您已经创建了 URL 为
    的虚拟目录。

  8. 单击“订阅服务器将以匿名方式进行连接”,然后单击“下一步”。

  9. 在“SQL Server 身份验证”屏幕上,单击“下一步”接受默认设置。

    在最终屏幕上,该向导将显示示例代码,您可以在应用程序中创建订阅时使用该代码。选择示例代码(Visual
    Basic 或
    C#,取决于您在创建应用程序时使用的语言),然后复制代码。若要执行复制操作,请选择该代码并按
    Ctrl+C。启动记事本或其他文本编辑器,然后粘贴示例代码。在使用下列步骤创建应用程序时,您将使用此代码。

  10. 在复制示例代码之后,单击“完成”。

  11. 单击“关闭”。

图片 17生成应用程序

图片 18创建新的智能设备项目

  1. 打开 Visual Studio 2005。

  2. 在“文件”菜单上,选择“新建项目”。

  3. 在“新建项目”对话框的“项目类型”树中,展开您所使用的开发语言,然后选择“智能设备”。

  4. 在模板列表中,选择要创建的项目类型。对于此演练,请选择“Pocket PC
    2003 应用程序”。

  5. 为该项目提供名称和位置,然后单击“确定”。对于此演练,请将该项目命名为
    SQLMobile。

    Visual Studio 将创建新的项目,并显示
    Form1,就像在智能设备上显示时一样。

图片 19添加对
System.Data.SqlServerCe.dll
的引用

  1. 在解决方案资源管理器中,右键单击“引用”,然后选择“添加引用”。

    注意:
    如果解决方案资源管理器中没有列出“引用”文件夹,那么单击解决方案资源管理器顶部的“显示所有文件”。

     

     

  2. 在 .NET
    程序集列表中,选择“System.Data.SqlServerCe”,然后单击“确定”。如果没有列出
    System.Data.SqlServerCe,请执行下列步骤:

    1. 单击“浏览”选项卡。
    2. 定位到以下目录:
      C:Program FilesMicrosoft Visual Studio 8Common7IDE
    3. 选择“System.Data.SqlServerCe.dll”,然后单击“确定”。

    解决方案资源管理器中的引用列表现在包括
    System.Data.SqlServerCe,并且您的项目可以使用该程序集。

  3. 在解决方案资源管理器中,右键单击“Form1.cs”或“Form1.vb”,然后选择“查看代码”。

  4. 在窗体的代码顶部,添加指令以使用 System.Data.SqlServerCe 命名空间:

    [C#]

    using System.Data.SqlServerCe;
    

    [VB]

    Imports System.Data.SqlServerCe
    

图片 20添加数据连接

  1. 在主窗口中,切换回 Form1 的“设计”(默认)视图。

  2. 从“数据”菜单中,单击“添加新数据源”。

    注意   如果未显示“添加新数据源”,请选择 Form1
    的“设计”视图,然后再次查看“数据”菜单。

  3. 在“选择数据源类型”窗口上,选择“数据库”,然后单击“下一步”。

  4. 在“选择您的数据连接”对话框中,单击“新建连接”。

  5. 在“选择数据源”对话框中的“数据源”下,选择“Microsoft SQL Server Mobile
    Edition”。在数据访问接口列表中,选择“.NET Framework Data Provider
    for SQL Server Mobile Edition”。单击“继续”。

  6. 在“添加连接”中的“数据源”下,选择“我的电脑”。

    在“连接属性”部分中的“数据库”下,单击“浏览”,然后浏览到前面过程中所创建的数据库。如果按照步骤操作,该数据库位于
    c:sqlmobile.sdf。

  7. 单击“测试连接”,然后单击“确定”以创建新的数据连接。

  8. 在“选择您的数据连接”对话框中,单击“下一步”。

  9. 在“保存连接字符串”窗口中,单击“下一步”。

  10. 在“选择您的数据库对象”窗口中,选择“表”,然后单击“完成”。

图片 21选择要显示的数据

  1. 从“数据”菜单中,选择“显示数据源”。

  2. 将“MembershipData”表从“数据源”窗口拖动到“Form1 设计”窗口。将在 Form1
    上创建数据网格,并自动提供列名称。

  3. 右键单击数据网格,然后选择“属性”。

  4. 在“属性”窗口中,将“停靠”值更改为“顶部”。可以通过单击出现的图形表示的顶部栏,或者在值字段中键入“顶部”来完成此操作。将会对数据网格进行移动并调整其大小以填充
    Form1 的顶部。

  5. 在数据网格的右上角,单击小箭头。从显示的菜单中,选择“生成数据窗体”。

  6. 将“FlightData”表从“数据源”窗口拖动到“Form1 设计”窗口。将在 Form1
    上创建数据网格,并自动提供列名称。

  7. 您可以使用该数据网格的“属性”设置将“停靠”属性设置为“底部”。

1、在Web.config中配置如下:

只有在创建发布快照之后才可对 SQLMobile 发布的订阅进行初始化。

添加代码

在应用程序的代码页中,您可以添加包含数据库文件的路径和名称的字符串变量,添加代码以便在数据库文件已存在时删除该文件,还可以添加代码以建立与
SQL Server 发布的连接、同步数据以及利用这些数据创建新的本地数据库。

图片 22添加代码

  1. 在解决方案资源管理器中,右键单击“Form1”,然后选择“显示代码”。

  2. 在代码页中,找到 Form1 的类定义。添加一个字符串变量,并为其分配该
    .sdf 文件的路径和名称。Visual Studio
    在上文中步骤创建的数据源将该数据库文件的存储位置设为
    Program FilesApplicationName 文件夹,其中 ApplicationName
    是应用程序的名称。例如,如果您将新项目命名为
    SQLMobile,您的字符串变量应设置为
    "Program FilesSQLMobilesqlmobile.sdf"

  3. 您的类定义的前几行应与以下代码类似:

    [C#]

    public partial class Form1 : System.Windows.Forms.Form
        {
        private System.Windows.Forms.MainMenu mainMenu1;
        string filename = @"Program FilesSSMWalkthroughsqlmobile.sdf";
        public Form1()
        {
        InitializeComponent();
        }
    

    [Visual Basic]

    Public Class Form1
        Dim filename As New String _
        ("Program FilesSQMWalkthrough_vbsqlmobile.sdf")
    
  1. 创建一个新方法,以便在数据库文件存在时删除该文件。这将确保应用程序每次运行时都加载最新的数据。该方法应命名为
    DeleteDB。您的代码应与以下代码类似:

    [C#]

    private void DeleteDB()
        {
        if (System.IO.File.Exists(filename))
        {
        System.IO.File.Delete(filename);
        }
        }
    

    [Visual Basic]

    Sub DeleteDB()
        If System.IO.File.Exists(filename) Then
        System.IO.File.Delete(filename)
        End If
        End Sub
    
  2. 创建名为“Sync”的执行同步的新方法。若要执行此操作,您将使用从前面步骤的“新建发布向导”中复制的代码。在粘贴代码后,必须对代码执行两项更改:

    1. 更改 SubscriberConnectionString
      值以指向在文件名变量中指定的正确路径和文件名。
    2. 将 AddOption 值从 ExistingDatabase 更改为 CreateDatabase。
      完成后,Sync 方法应如下所示:
      [C#]

      private void Sync()
              {
              SqlCeReplication repl = new SqlCeReplication();
              repl.InternetUrl = @"http://computer_name/sqlmobile/sqlcesa30.dll";
              repl.Publisher = @"computer_name";
              repl.PublisherDatabase = @"SQLMobile";
              repl.PublisherSecurityMode = SecurityType.NTAuthentication;
              repl.Publication = @"SQLMobile";
              repl.Subscriber = @"sqlmobile";
              repl.SubscriberConnectionString = @"Data Source='" + filename +
              "';Password='';Max Database Size='128';Default Lock Escalation
              ='100';";
              repl.AddSubscription(AddOption.CreateDatabase);
              repl.Synchronize();
              }
      

      [Visual Basic]

      Sub Sync()
              Dim repl As New SqlCeReplication()
              repl.InternetUrl = "http://computer_name/sqlmobile/sqlcesa30.dll"
              repl.Publisher = "computer_name"
              repl.PublisherDatabase = "SQLMobile"
              repl.PublisherSecurityMode = SecurityType.NTAuthentication
              repl.Publication = "SQLMobile"
              repl.Subscriber = "sqlmobile"
              repl.SubscriberConnectionString = _
              "Data Source='" + filename + "';Password='';" _
              & "Max Database Size='128';Default Lock Escalation ='100';"
              repl.AddSubscription(AddOption.CreateDatabase)
              repl.Synchronize()
              End Sub
      
  3. 最后,向调用刚才所创建两个方法的 Form1_Load
    事件处理程序的开头添加代码。Form1_Load 事件处理程序应如下所示:

    [C#]

    private void Form1_Load(object sender, EventArgs e)
        {
        DeleteDB();
        Sync();
        // TODO: Delete this line of code ...
        this.flightDataTableAdapter.Fill(this.sqlmobileDataSet.FlightData);
        // TODO: Delete this line of code ...
        this.membershipDataTableAdapter.Fill(this.sqlmobileDataSet.MembershipData);
        }
    

    [Visual Basic]

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        DeleteDB()
        Sync()
        'TODO: Delete this line of code ...
        Me.FlightDataTableAdapter.Fill(Me.SqlmobileDataSet.FlightData)
        'TODO: Delete this line of code ...
        Me.MembershipDataTableAdapter.Fill(Me.SqlmobileDataSet.MembershipData)
        End Sub
    

图片 23部署并测试应用程序

图片 24部署应用程序

  1. 从“调试”菜单中,选择“开始”。

  2. 在“部署”对话框中,选择“Pocket PC 2003 SE 模拟器”,然后单击“部署”。

  3. 将会在新窗口中打开模拟器。在首次将应用程序部署到模拟器时,将安装
    .NET Compact Framework 和 SQL Server
    Mobile。该过程可能需要几分钟的时间。当它们安装完成后,将安装您的应用程序并运行。

    您的应用程序将加载并显示这两个数据网格。单击“MembershipData”数据网格中的值时,会自动更新“FlightData”数据网格中的数据。

  4. 关闭应用程序,在 Visual Studio 中的“调试”菜单上,单击“停止调试”。

  <connectionStrings>
    <add name=”MyStoreEntities
     connectionString=”Data Source=|DataDirectory|MyShop.sdf”
     providerName=”System.Data.SqlServerCe.4.0″/>
  </connectionStrings>

创建发布快照

注意,这里数据库连接串的名称很重要,以后使用 EF Code-First
的时候,通过它来找到数据库,这里的链接串种使用了 Data
Source=|DataDirectory|MvcMusicStore.sdf,这里的 DataDirectory 指的就是项目中的 App_Data
文件夹夹。如果项目中没有App_Data就需要先建立该文件夹。

________________________________________________________________________________

2、建立实体类

配置 IIS 和 SQL Server 2005 以实现 Web 同步

Administrator.cs

既然已对 SQL Server 配置了一个发布,则必须使该发布可以通过网络供 SQL
Server Compact Edition 客户端使用。SQL Server Compact Edition 可通过 IIS
连接到 SQL Server。即,创建虚拟目录并对其进行配置,从而允许客户端访问
SQL Server Compact Edition 服务器代理。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace EntityFramerwork.Models
{
    [Bind(Exclude = "AdministratorID")]
    public class Administrator
    {
        public int AdministratorID {get;set;}
        public string AdministratorName {get;set;}
        public string AdministratorPassword { get; set; }
    }
}

安装 SQL Server Compact Edition 服务器组件

Classification.cs

配置发布以进行 Web 同步

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace EntityFramerwork.Models
{
    [Bind(Exclude = "ClassificationID")]
    public class Classification
    {
        public int ClassificationID {get;set;}
        public string ClassificationName { get; set; }
        public int ClassificationParentID {get;set;}
    }
}

________________________________________________________________________________

Commodity.cs

SQL Server Compact Edition 任务

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace EntityFramerwork.Models
{
    [Bind(Exclude = "CommodityID")]
    public class Commodity
    {
        public int CommodityID {get;set;}
        public string CommodityName {get;set;}
        public decimal CommodityPrice { get; set; }
        public int ClassificationID {get;set;}
        public string CommodityIntroduction {get;set;}
    }
}

如果在开发要使用 SQL Server Compact Edition 的应用程序之前预先创建 SQL
Server Compact Edition 数据库和订阅,通常会节省大量时间。SQL Server
Management Studio 允许您在本地计算机上创建并使用 SQL Server Compact
Edition 数据库。然后,您可以在开发应用程序时使用此数据库。

 MyStoreEntities.cs(这个类很重要,它的名字一定要同配置文件中add
name=”MyStoreEntities“的name一样)

创建新的 SQL Server Compact Edition 数据库

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;

namespace EntityFramerwork.Models
{
    public class MyStoreEntities : DbContext
    {
        public DbSet<Administrator> Administrators { get; set; }
        public DbSet<Classification> Classifications { get; set; }
        public DbSet<Commodity> Commoditys { get; set; }
    }
}

创建新的订阅

这个类继承了DbContext类,对于这个类还没有深入了解…..

发表评论

电子邮件地址不会被公开。 必填项已用*标注