SQL Server Compact Edition 程式建立步骤

2008-02-23 07:38:25来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

在创建应用程式之前,必须在 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 = @"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);

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 如何安全配置和应用MySQL数据库

下一篇: C# 怎样实现远程连接SQL Server2005