为桌面生成应用程序 (SQL Server Compact)

您可以将 SQL Server Compact 3.5 用作计算机应用程序的数据存储区。本主题将介绍如何将 SQL Server Compact 3.5 添加到 Visual Studio 产品中,然后针对 System.Data.SqlServerCe 命名空间编写代码。System.Data.SqlServerCe 命名空间的托管的参考主题可在 .NET Framework 参考文档中查阅。

创建计算机项目

若要创建新的计算机应用程序,应首先在 Visual Studio 中创建 Windows 项目。对于计算机应用程序,必须添加对 Microsoft.Ink 命名空间的引用。

备注

如果不是在运行 Windows XP Tablet PC Edition 的计算机上开发 Tablet PC 应用程序,那么必须首先安装 Microsoft Windows XP Tablet PC Edition 开发工具包。您可以从移动和嵌入式应用程序开发中心下载最新版本。

创建新的计算机项目

  1. 在 Visual Studio 中的**“文件”菜单上,指向“新建”,然后选择“项目”**。

  2. 在**“新建项目”对话框的“已安装模板”列表中,展开您将要使用的编程语言,然后选择“Windows”**。

  3. 在**“模板”列表中,选择“Windows 窗体应用程序”**。

  4. 为项目提供名称和位置,然后单击**“确定”**。

    Visual Studio 即会创建一个新项目,并显示主窗体 (Form1)。

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

    备注

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

  6. (可选)在 .NET 程序集的列表中,选择**“Microsoft Tablet PC API”,然后单击“确定”**。

    现在引用列表包括**“Microsoft.Ink”**。

当为集中部署生成时将 SQL Server Compact 3.5 添加到项目

在创建项目后,必须添加对 SQL Server Compact 3.5 程序集的引用。为 SQL Server Compact 3.5 的专用部署或集中部署生成应用程序时,用于添加对 SQL Server Compact 3.5 程序集的引用的过程稍有不同。对于集中部署,请按照以下步骤操作。

针对集中部署添加对 SQL Server Compact 3.5 的引用

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

    备注

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

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

    1. 在**“添加引用”对话框中,单击“浏览”**。

    2. 导航到以下文件夹:%Program Files%\Microsoft SQL Server Compact Edition\v3.5\Desktop。

    3. 选择**“System.Data.SqlServerCe.dll”,然后单击“确定”**。

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

    备注

    如果您的项目使用实体框架,则重复相同步骤添加对 System.Data.SqlServerCe.Entity 的引用。可以从 .NET 程序集的列表中添加 System.Data.SqlServerCe.Entity,也可以浏览至 %Program Files%\Microsoft SQL Server Compact Edition\v3.5。

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

  4. 在窗体的代码顶部,添加指令以使用 System.Data.SqlServerCe 命名空间。如果您使用 实体框架,请添加一个指令以使用 System.Data.SqlServerCe 命名空间。对于 Tablet PC 应用程序,还可以添加指令以使用 Tablet PC API:

    • C#

      using System.Data.SqlServerCe;
      using System.Data.SqlServerCe.Entity; 
      using Microsoft.Ink;
      
    • Visual Basic

      Imports System.Data.SqlServerCe
      Imports System.Data.SqlServerCe.Entity
      Imports Microsoft.Ink
      

当为专用部署生成时将 SQL Server Compact 3.5 添加到项目

在创建项目后,必须添加对 SQL Server Compact 3.5 程序集的引用。为 SQL Server Compact 3.5 的专用部署或集中部署生成应用程序时,用于添加对 SQL Server Compact 3.5 程序集的引用的过程稍有不同。对于专用部署,请按照以下步骤操作。

针对集中部署添加对 SQL Server Compact 3.5 的引用

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

    备注

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

  2. 在**“添加引用”对话框中,单击“浏览”**。

  3. 导航到 %Program Files%\Microsoft SQL Server Compact Edition\v3.5\Private 文件夹。

  4. 选择 System.Data.SqlServerCe,然后单击**“确定”**。

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

    备注

    如果您的项目使用实体框架,则重复相同步骤添加对 System.Data.SqlServerCe.Entity 的引用。(对于专用部署,还从 %Program Files%\Microsoft SQL Server Compact Edition\v3.5\Private 文件夹添加 System.Data.SqlServerCe.Entity。)

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

  6. 在窗体的代码顶部,添加指令以使用 System.Data.SqlServerCe 命名空间。如果您使用 实体框架,请添加一个指令以使用 System.Data.SqlServerCe 命名空间。对于 Tablet PC 应用程序,还可以添加指令以使用 Tablet PC API:

    • C#

      using System.Data.SqlServerCe;
      using System.Data.SqlServerCe.Entity; 
      using Microsoft.Ink;
      
    • Visual Basic

      Imports System.Data.SqlServerCe
      Imports System.Data.SqlServerCe.Entity
      Imports Microsoft.Ink
      

为专用部署配置 SQL Server Compact

若要生成使用 SQL Server Compact 3.5 的专用部署的应用程序,必须确保在应用程序的输出目录中部署了 .NET Framework 数据访问接口和任何必需的本机 DLL。如果您希望应用程序使用 SQL Server Compact 3.5 的专用部署,则应按照本节的步骤操作。如果您的应用程序不使用专用部署,则跳过本节。有关安装 SQL Server Compact 3.5 的专用部署的详细信息,请参阅专用部署与集中部署 (SQL Server Compact)。以下步骤假设所生成的应用程序面向任意平台(32 位和 64 位)。如果您的应用程序只面向这些平台之一,则可以忽略适用于另一个平台的步骤。

为 SQL Server Compact 的专用部署配置应用程序

  1. 将 .NET Framework Data Provider for SQL Server Compact 3.5 程序集配置为在生成项目时复制到输出目录中。

    1. 在**“解决方案资源管理器”中,展开“引用”,右键单击System.Data.SqlServerCe,然后选择“属性”**。

    2. 在 System.Data.SqlServerCe 的**“引用属性”中,将“复制本地”**设置为 True

    备注

    如果项目使用实体框架,则对 System.Data.SqlServerCe.Entity 重复相同步骤,以便将 实体框架 Data Provider for SQL Server Compact 3.5 配置为复制到输出目录中。

  2. 将任何必需的 32 位 SQL Server Compact 3.5 本机库添加到项目。

    1. 在**“解决方案资源管理器”中,右键单击项目,指向“添加”,然后选择“新建文件夹”**。将文件夹命名为 x86

    2. 在**“解决方案资源管理器”中,右键单击 x86 文件夹,指向“添加”,然后选择“现有项”**。

    3. 在**“添加现有项”**对话框中,浏览到其中放有 32 位本机库的文件夹。在 32 位版本的 Windows 上,此文件夹为 %Program Files%\Microsoft SQL Server Compact Edition\v3.5。在 64 位版本的 Windows 上,此文件夹为 %Program Files (x86)%\Microsoft SQL Server Compact Edition\v3.5。

    4. 在按 Ctrl 键的同时单击项目的每个必需本机库以便在文件列表中选择它们,然后单击**“确定”**。这些库将添加到 x86 文件夹中。

      备注

      至少必须添加以下库:sqlceme35.dll、sqlceqp35.dll、sqlcese35.dll 和 sqlceer35.dll。

  3. 将任何必需的 64 位 SQL Server Compact 3.5 本机库添加到项目。

    1. 在**“解决方案资源管理器”中,右键单击项目,指向“添加”,然后选择“新建文件夹”**。将文件夹命名为 x64

    2. 在**“解决方案资源管理器”中,右键单击 x64 文件夹,指向“添加”,然后选择“现有项”**。

    3. 在**“添加现有项”**对话框中,浏览到其中放有 64 位本机库的文件夹。在 64 位版本的 Windows 上,此文件夹为 %Program Files%\Microsoft SQL Server Compact Edition\v3.5。

      备注

      不能在运行 32 位版本的 Windows 的计算机上安装 64 位 SQL Server Compact 3.5。若要将 64 位本机库添加到使用 32 位开发环境生成的项目中,必须首先从 64 位安装程序将文件提取到开发计算机上的某个目录中。然后,您可以浏览至此目录,以便将 64 位本机库添加到项目中。有关从安装程序提取文件的信息,请参阅如何从 SQL Server Compact 运行时安装程序解压缩 64 位 DLL

    4. 在按 Ctrl 键的同时单击项目的每个必需本机库以便在文件列表中选择它们,然后单击**“确定”**。这些库将添加到 x64 文件夹中。

      备注

      至少必须添加以下库:sqlceme35.dll、sqlceqp35.dll、sqlcese35.dll 和 sqlceer35.dll。

  4. 将在先前步骤中添加的每个本机库配置为在生成项目时复制到输出目录中。必须针对这两个目录中的库执行此操作。

    1. 在解决方案资源管理器中,右键单击库(例如,sqlcese35.dll)并选择属性。

      备注

      如果程序集未列在“解决方案资源管理器”中,则单击单击“解决方案资源管理器”顶部的“显示所有文件”

    2. 在文件的**“属性”中,从“复制到输出目录”下拉列表中选择“始终复制”“更高时复制”**。

  5. 配置要针对**“任何 CPU”**生成的项目。

    1. 在**“解决方案资源管理器”中,右键单击项目,选择“属性”以打开“项目设计器”**。

    2. 单击**“生成”并从“平台目标”下拉列表中选择“任何 CPU”**。

使用 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 MySqlCeEngine
{
    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 MySqlCeEngine

    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 

请参阅

参考

System.Data.SqlServerCe 命名空间(.NET Framework 参考文档)