首 页IT知识库翔宇问吧收藏内容
当前位置:翔宇亭IT乐园IT知识库数据库SQL Server

如何使用SQL Server Compact Edition创建移动应用程序

减小字体 增大字体 作者:佚名  来源:天极网  发布时间:2010-05-16 09:06:00

创建新的订阅

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

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

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

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

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

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

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

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

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

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

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

单击“关闭”。

生成应用程序

创建新的智能设备项目

打开 Visual Studio 2005。

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

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

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

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

Visual Studio 将创建新的项目,并显示 Form1,这类似于在智能设备上进行显示。

添加引用

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

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

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

单击“浏览”选项卡。

定位到以下目录:C:\Program Files\Microsoft Visual Studio 8\Common7\IDE

选择“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

添加数据连接

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

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

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

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

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

如果显示“添加连接”对话框,请单击“更改”。

在“选择数据源”对话框的“数据源”中,选择“Microsoft SQL Server Compact Edition”(如果连接已存在,则此对话框的名称可能为“更改数据源”)。在数据访问接口列表中,选择“.NET Framework Data Provider for SQL Server Compact Edition”。单击“继续”或“确定”。

在“添加连接”对话框的“数据源”中,选择“我的电脑”。

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

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

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

如果此时出现对话框,要求您将数据文件复制到当前项目中,请单击“是”。

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

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

选择要显示的数据

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

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

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

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

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

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

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

添加节点

在应用程序的代码页中,可添加包含数据库文件的路径和名称的字符串变量、用于删除数据库文件(如果已存在)的代码、用于创建与 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();
  }

  [Visual Basic]

以下是引用片段:
  Public Class Form1
  Dim filename As New String _
  ("\Program Files\SQLMobile\sqlmobile.sdf")

  4.如果当前存在数据库文件,则将创建新方法将该数据库文件删除。这将确保应用程序在每次运行时加载最新的数据。此方法应该命名为 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

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

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

    b.将 AddOption 值从 ExistingDatabase 更改为 CreateDatabase。

       更改完成后,Sync 方法应如下所示:

  [C#]

以下是引用片段:
  private void Sync()
  {
  SqlCeReplication repl = new SqlCeReplication();
  repl.InternetUrl = @"http:///sqlmobile/sqlcesa30.dll";
  repl.Publisher = @"";
  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());
  }
  }

  [Visual Basic]

 

以下是引用片段:
 Sub Sync()
  Dim repl As New SqlCeReplication()
  repl.InternetUrl = "http:///SQLMobile/sqlcesa30.dll"
  repl.Publisher = ""
  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 err as SqlCeException
  MessageBox.Show(err.ToString)
  end try

End Sub

  6.  最后,在调用最新创建的两个方法的 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

部署应用程序

从“调试”菜单中,选择“启动调试”。

如果此时显示“部署”对话框,请选择“Pocket PC 2003 SE 仿真程序”,然后单击“部署”。

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

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

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

本文由翔宇亭IT乐园http://www.biye5u.com)提供,有什么意见或建议请留言评论。

上一页  [1] [2] [3] [4] 

微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。

个人成长离不开各位的关注,你的关注就是我继续前行的动力。

知识评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
愿您的精彩评论引起共鸣,带来思考和价值。
用户名: 查看更多评论
分 值:100分 90分 80分 70分 60分 40分 20分
内 容:
验证码:
关于本站 | 网站帮助 | 广告合作 | 网站声明 | 友情连接 | 网站地图
本站部分内容来自互联网,如有侵权,请来信告之,谢谢!
Copyright © 2007-2022 biye5u.com. All Rights Reserved.