生成智能设备应用程序 (SQL Server Compact)
本节将介绍在 Microsoft Visual Studio 中如何执行下列操作:创建新的智能设备项目,将 Microsoft SQL Server Compact 3.5 功能添加到项目中,然后通过使用 System.Data.SqlServerCe 命名空间创建新的 SQL Server Compact 3.5 数据库。System.Data.SqlServerCe 命名空间的托管的参考主题可在 .NET Framework Reference Documentation中查阅。
重要
Visual Studio 2008 是用来通过 SQL Server Compact 3.5 SP2 为智能设备开发应用程序的首选环境。Visual Studio 2010 不支持开发智能设备应用程序。有关详细信息,请参阅安装开发环境。
使用 .NET Compact Framework
Microsoft.NET Compact Framework 提供了为设备快速开发应用程序的方法。.NET Compact Framework 具有两个主要组件:
公共语言运行时
公共语言运行时是一种环境,它通过提供线程的核心服务和内存管理,负责在应用程序运行时管理代码。面向运行时设计的代码称为托管代码,而不使用运行时的代码则称为非托管代码或本机代码。用于智能设备的本机应用程序是使用 MicrosoftVisual C++ for Devices 生成的,而托管应用程序是使用一种 .NET 编程语言(包括 MicrosoftVisual Basic 和 MicrosoftVisual C#)生成的。
.NET Compact Framework 类库
.NET Compact Framework 类库提供了可重用的类,从用户界面开发到线程管理,再到数据库访问,这些类可以缩短开发时间和简化许多常规编程任务。
注意 若要开发面向 .NET Compact Framework 的应用程序,则必须安装 MicrosoftVisual Studio 2003 或更高版本。 在 Visual Studio 中,可以使用 Visual C# 或 Visual Basic 或同时使用这两种语言来开发应用程序。
使用 SQL Server 数据提供程序
当访问 SQL Server Compact 3.5 数据库时,需要使用 System.Data.SqlServerCe 命名空间。使用此命名空间,您可以在 SQL Server Compact 3.5 数据库中执行以下操作:
访问和更改数据。
管理数据库。
同步数据。
有关更多信息,请参阅托管数据提供程序 (SQL Server Compact)。
当从智能设备应用程序访问 SQL Server 数据库时,需要使用 SQL Server 的 .NET Compact Framework 数据提供程序。有关更多信息,请参阅 SQL Server 的 .NET Compact Framework 数据提供程序 (SQL Server Compact)。
创建智能设备项目
您必须首先在 Visual Studio 中创建项目。
创建新的智能设备项目
在 Visual Studio 中的**“文件”菜单上,指向“新建”,然后选择“项目”**。
在**“新建项目”对话框的“项目类型”列表中,展开您将要使用的编程语言,然后选择“智能设备”**。
备注
对于 Visual Basic,首先展开“其他语言”。
在**“模板”列表中,选择“智能设备项目”**。
为项目提供名称和位置,然后单击**“确定”。将打开“添加新智能项目”**对话框。
在**“模板”列表中,选择“设备应用程序”**。
在**“目标平台”**下拉列表中,选择要用于创建项目的平台。例如,如果您开发 Windows Mobile 5.0 Pocket PC 应用程序,则选择 Windows Mobile 5.0 Pocket PC SDK。
从**“.NET Compact Framework 版本”**下拉列表中,选择要用于应用程序的 .NET Compact Framework 版本。
单击**“确定”**。
Visual Studio 即会创建一个新项目,并显示主窗体 (Form1)。显示外观将类似于您选择的目标平台的设备。
将 SQL Server Compact 3.5 添加到项目
生成启用 SQL Server Compact 3.5 的应用程序的下一步是添加对 SQL Server Compact 程序集的引用。
添加对 SQL Server Compact 3.5 的引用
在解决方案资源管理器中,右键单击**“引用”,然后选择“添加引用”**。
备注
如果解决方案资源管理器中没有列出“引用”文件夹,那么单击解决方案资源管理器顶部的“显示所有文件”。
在 .NET 程序集列表中,选择**“System.Data.SqlServerCe”,然后单击“确定”**。如果没有列出 System.Data.SqlServerCe,请执行下列步骤:
单击**“浏览”**。
导航到以下目录:
C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Devices
选择**“System.Data.SqlServerCe.dll”,然后单击“确定”**。
解决方案资源管理器中的引用列表现在包括 System.Data.SqlServerCe,并且您的项目可以使用该程序集。
在解决方案资源管理器中,右键单击**“Form1.cs”或“Form1.vb”,然后选择“查看代码”**。
在窗体的代码顶部,添加指令以使用 System.Data.SqlServerCe 命名空间:
using System.Data.SqlServerCe;
Imports System.Data.SqlServerCe
为专用部署配置 SQL Server Compact
若要生成使用 SQL Server Compact 3.5 的专用部署的应用程序,必须确保在应用程序的输出目录中部署了 .NET Compact Framework 数据访问接口和任何必需的本机 DLL。如果您希望应用程序使用 SQL Server Compact 3.5 的专用部署,则必须按照本节的步骤操作。如果您的应用程序不使用专用部署,则跳过本节。有关安装 SQL Server Compact 3.5 的专用部署的详细信息,请参阅专用部署与集中部署 (SQL Server Compact)。
为 SQL Server Compact 的专用部署配置应用程序
将 .NET Compact Framework Data Provider for SQL Server Compact 3.5 程序集配置为在生成项目时复制到输出目录中。
在**“解决方案资源管理器”中,展开“引用”,右键单击System.Data.SqlServerCe,然后选择“属性”**。
在 System.Data.SqlServerCe 的**“引用属性”中,将“复制本地”**设置为 True。
将任何必需的 SQL Server Compact 3.5 本机库添加到项目。
在**“解决方案资源管理器”中,右键单击项目,指向“添加”,然后选择“现有项”**。
在**“添加现有项”**对话框中,浏览至 %Program Files%\Microsoft SQL Server Compact Edition\v3.5\Devices\ 中可找到对应于您的设备平台的程序集的位置。例如:C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Devices\wce500\armv4i。
在按 Ctrl 键的同时单击项目的每个必需本机库以便在文件列表中选择它们,然后单击**“确定”**。
备注
至少必须添加以下库:sqlceme35.dll、sqlceqp35.dll 和 sqlcese35.dll。
将在先前步骤中添加的每个本机库配置为在生成项目时复制到输出目录中。
在解决方案资源管理器中,右键单击库(例如,sqlcese35.dll)并选择属性。
备注
如果程序集未列在“解决方案资源管理器”中,则单击单击“解决方案资源管理器”顶部的“显示所有文件”。
在文件的**“属性”中,从“复制到输出目录”下拉列表中选择“始终复制”或“更高时复制”**。
备注
从 Visual Studio 中通过 F5 键部署智能设备应用程序后,将在智能设备上执行 SQL Server Compact 3.5 的集中安装。因此,如果您从 Visual Studio 中部署应用程序,则应用程序将使用 Visual Studio 在部署期间安装到设备上的 SQL Server Compact 3.5 版本;即使应用程序构建用于 SQL Server Compact 3.5 的专用部署也不例外。
使用 SQL Server Compact 3.5 对象
在添加 System.Data.SqlServerCe 命名空间后,可以通过使用 SQL Server Compact 3.5 对象针对该命名空间开始编写代码。下面的代码示例说明如何使用 Engine 对象创建新的 SQL Server Compact 3.5 数据库文件:
using System;
using System.Data.SqlServerCe;
using System.IO;
public class NETCF_SqlCeEngine
{
public void CreateDB()
{
File.Delete("Test.sdf");
string connString = "Data Source='Test.sdf'; LCID=1033; Password = <enterStrongPasswordHere>; Encrypt = TRUE;";
SqlCeEngine engine = new SqlCeEngine(connString);
engine.CreateDatabase();
}
}
Imports System
Imports System.Data.SqlServerCe
Imports System.IO
Public Class NETCF_SqlCeEngine
Public Sub CreateDB()
File.Delete("Test.sdf")
Dim connString As String = "Data Source='Test.sdf'; LCID=1033; Password = <enterStrongPasswordHere>; Encrypt = TRUE;"
Dim engine As New SqlCeEngine(connString)
engine.CreateDatabase()
End Sub
End Class