MSSQL Server Compact Edition 程序建立步骤


  SQL Server 2005 使命

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

   缔造数据库并在其中填充数据

   预备服务器以公布数据

  在 缔造公布之前,必须 缔造快照代理消费者帐户,并 缔造一个将在其中存储快照文件的共享文件夹, 预备服务器以进行公布 。 缔造快照文件夹之后,该文件夹将用于服务器上的全部公布 。假如以往已在此服务器上 缔造了公布,您 可以跳过这些步骤 。

   缔造快照消费者帐户

   缔造快照文件夹

   缔造公布

  设置权限

  您必须为快照代理帐户和 IIS 匿名消费者帐户授予权限 。还必须将 IIS 匿名消费者帐户增加到公布 拜访列表 (PAL) 中 。

  设置数据库权限

  授予公布权限

   缔造公布快照

  惟独在 缔造公布快照之后才可对 SQLMobile 公布的订阅进行初始化 。

   缔造公布快照

  ________________________________________________________________________________

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

  既然已对 SQL Server 配置了一个公布,则必须使该公布 可以通过网络供 SQL Server Compact Edition 客户端 使用 。SQL Server Compact Edition 可通过 IIS 衔接到 SQL Server 。即, 缔造 虚构目录并对其进行配置,从而同意客户端 拜访 SQL Server Compact Edition 服务器代理 。

  安装 SQL Server Compact Edition 服务器组件

  配置公布以进行 Web 同步

  ________________________________________________________________________________

  SQL Server Compact Edition 使命

  假如在开发要 使用 SQL Server Compact Edition 的 利用程序之前预先 缔造 SQL Server Compact Edition 数据库和订阅,通常会 节俭大量 工夫 。SQL Server Management Studio 同意您在当地计算机上 缔造并 使用 SQL Server Compact Edition 数据库 。 而后,您 可以在开发 利用程序时 使用此数据库 。

   缔造新的 SQL Server Compact Edition 数据库

   缔造新的订阅

  配置步骤为三步: 缔造公布-->web同步--> 缔造订阅

  ________________________________________________________________________________

  生成 利用程序

   缔造新的智能 设施 名目

  增加 引用

  增加数据衔接

   取舍要显示的数据

  增加节点

  在 利用程序的代码页中,可增加包括数据库文件的路径和名称的字符串变量、用于删除数据库文件(假如已存在)的代码、用于 缔造与 SQL Server 公布的衔接、同步数据和 缔造一个包括已公布数据的新当地数据库的代码 。

  增加代码

  在解决 方案资源治理器中,右键单击“Form1”, 而后 取舍“查看代码” 。

  在代码页中,搜索 Form1 的类定义 。增加一个字符串变量,并赋值为 .sdf 文件的路径和文件名 。Visual Studio 在先前步骤中 缔造的数据源需求数据库文件驻留在 \Program Files\ApplicationName 文件夹中,其中 ApplicationName 为 利用程序的名称 。例如,假如您命名了新 名目 SQLMobile,则应将字符串变量设置为 "\Program Files\SQLMobile\sqlmobile.sdf" 。

  类定义的前几行应该与以下代码 类似:

  [C#]

  复制代码

  public partial class Form1 : System.Windows.Forms.Form

  {

  private System.Windows.Forms.MainMenu mainMenu1;

  string filename = @"\Program Files\SQLMobile\sqlmobile.sdf";

  public Form1()

  {

  InitializeComponent();

  }

  假如目前存在数据库文件,则将 缔造新 步骤将该数据库文件删除 。这将确保 利用程序在每次运行时加载最新的数据 。此 步骤应该命名为 DeleteDB 。此代码应该与以下代码 类似:

  [C#]

  复制代码

  private void DeleteDB()

  {

  if (System.IO.File.Exists(filename))

  {

  System.IO.File.Delete(filename);

  }

  }

   缔造名为“Sync”的执行同步的新 步骤 。若要执行此操作,您将 使用从前面步骤的“新建公布向导”中复制的代码 。在粘贴代码后,必须对代码执行两项更改:

  更改 SubscriberConnectionString 值,以便该值指向文件名变量中指定的正确路径和文件名 。

  将 AddOption 值从 ExistingDatabase 更改为 CreateDatabase 。

  更改 实现后,Sync 步骤应如下所示:

  [C#]

  复制代码

  private void Sync()

  {

  SqlCeReplication repl = new SqlCeReplication();

  repl.InternetUrl = @"/sqlmobile/sqlcesa30.dll">http://<computername>/sqlmobile/sqlcesa30.dll";

  repl.Publisher = @"<computername>";

  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';";

  try

  {

  repl.AddSubscription(AddOption. CreateDatabase);

  repl.Synchronize();

  }

  catch (SqlCeException e)

  {

  MessageBox.Show(e.ToString());

  }

  }

  最终,在调用最新 缔造的两个 步骤的 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);

  }

  ________________________________________________________________________________

  部署并测试 利用程序

  部署 利用程序