创建移动应用SQL.doc_第1页
创建移动应用SQL.doc_第2页
创建移动应用SQL.doc_第3页
创建移动应用SQL.doc_第4页
创建移动应用SQL.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

介绍将如何在使用MicrosoftSQLServer2005CompactEdition的MicrosoftVisualStudio2005中创建应用程序。SQLServerCompactEdition数据库将成为SQLServer2005发布的订阅服务器,并且将使用合并复制从SQLServer2005数据库中将信息下载到SQLServerCompactEdition数据库。 在此演练中,您将执行下列步骤:配置SQLServer2005发布。配置Internet信息服务(IIS)以进行复制。创建SQLServerCompactEdition订阅。创建应用程序。部署应用程序并测试订阅。 必备项 若要按照此演练中所写的步骤执行此演练,则必须满足下列条件: 安装有WindowsXP和IIS的计算机。SQLServer2005ServicePack2(SP2)或更高版本,与VisualStudio安装在同一台计算机上。 SQLServer2005任务在创建应用程序之前,必须在SQLServer2005中配置发布。在下列步骤中,您将创建一个示例数据库,然后从该数据库发布数据。您将使用预建的脚本文件创建数据库,然后使用新建发布向导来创建发布。 创建数据库并在其中填充数据 1、打开SQLServerManagementStudio。 2、当提示您连接服务器时,请在“服务器名称”中键入(local),然后单击“连接”。 3、打开一个新查询窗口。创建SQLServerCompactEdition数据库,并用数据填充该数据库。 以下是引用片段:USE master;GOIF EXISTS (SELECT * FROM sys.sysdatabases WHERE name = SQLMobile)BEGINDROP Database SQLMobile;ENDGOCREATE DATABASE SQLMobile;GOUSE SQLMobile;GOCREATE TABLE MembershipData (MemberID INTEGER IDENTITY (1,1)CONSTRAINT pkMemberID PRIMARY KEY, MemberName NVarChar (50);CREATE TABLE FlightData (MemberID INTEGER FOREIGN KEY REFERENCESMembershipData(MemberID), Destination NVarChar (50), FlightStatusNVarChar(50), ArrivalDate DATETIME, FlownMiles INTEGER);INSERT INTO MembershipData (MemberName) VALUES (Mr Don Hall);INSERT INTO MembershipData (MemberName) VALUES (Mr Jon Morris);INSERT INTO MembershipData (MemberName) VALUES (Ms TiAnna Jones);INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles)VALUES (1, Seattle, Flight Delayed 1 hour, 8/25/00, 20000);INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles) VALUES (2, London, Flight on time, 9/12/00, 15000);INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles)VALUES (3, Sydney, Flight Gate Closing, 11/5/00, 30000);INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles)VALUES (1, Tokyo, Delayed Fog, 5/25/00, 25000);INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles)VALUES (2, Minneapolis, Flight on time, 5/1/00, 1000);INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles)VALUES (3, Memphis, Flight Gate Closing, 1/5/00, 1000);GO 软件开发网 4、单击“执行(!)”运行该脚本并创建数据库。此时,将运行该脚本,创建一个名为SQLMobile的新数据库。注意:您还可以按F5,或者从“查询”菜单中选择“执行”来运行该查询。 5、若要确认该数据库已创建,请在对象资源管理器中,展开“(本地)”,展开“数据库”,然后展开“SQLMobile”。如果没有列出SQLMobile数据库。请右键单击“数据库”,然后选择“刷新”以更新数据库列表。 准备服务器以发布数据 在创建发布之前,必须创建快照代理用户帐户,并创建一个将在其中存储快照文件的共享文件夹,准备服务器以进行发布。创建快照文件夹之后,该文件夹将用于服务器上的所有发布。如果以前已在此服务器上创建了发布,您可以跳过这些步骤。 创建快照用户帐户 1、从“控制面板”的“管理工具”中打开“计算机管理”。 2、在“计算机管理”中,展开“系统工具”,展开“本地用户和组”,右键单击“用户”,然后选择“新用户”。3、在“新用户”对话框中,键入以下信息,然后单击“创建”: 字段值 用户名 snapshot_agent 密码 pssw0rd 确认密码 pssw0rd 用户下次登录时须更改密码 未选中 密码永不过期 选中 重要事项: 这些设置应该仅用于测试。在生产环境中,请确保用户帐户设置符合您的网络安全要求。通常,您将对快照代理使用域用户帐户而不是使用本地用户帐户。 创建快照文件夹 在Windows资源管理器中,创建一个名为“snapshot”的新文件夹。在此演练中,您可以在驱动器C的根目录下创建该文件夹:c:snapshot。右键单击“snapshot”文件夹,然后选择“共享和安全”。在“共享”选项卡上,选择“共享该文件夹”,然后单击“权限”。在“快照的权限”中,单击“添加”。在“输入要选择的对象名称”中,键入computernamesnapshot_agent(其中computername为本地计算机的名称),单击“检查名称”,然后单击“确定”。在“快照的权限”中,选择“snapshot_agent”,分配“更改”和“读取”共享权限,然后单击“确定”。选择“安全”选项卡。单击“添加”。在“输入要选择的对象名称”中,键入computernamesnapshot_agent(其中computername为本地计算机的名称),单击“检查名称”,然后单击“确定”。选择“snapshot_agent”,然后将“写入”权限添加到已启用的权限列表中。现在,snapshot_agent帐户将被授予下列权限:读取和执行列出文件夹目录读取写入单击“确定”关闭“快照属性”窗口。关闭Windows资源管理器。 创建发布 在SQLServerManagementStudio的对象资源管理器中,展开“(本地)”节点(如果当前尚未展开),然后展开“复制”。右键单击“本地发布”文件夹,然后选择“新建发布”。在新建发布向导简介屏幕上,单击“下一步”。如果以前未曾在此计算机上创建发布,将提示您配置分发服务器。选择第一个选项将本地计算机作为它自己的分发服务器,然后单击“下一步”。如果以前未曾在此计算机上创建发布,将提示您指定快照文件夹。键入前面过程中创建的快照文件夹的共享路径。以servernameshare格式键入共享路径,不要键入本地路径。在此演练中,我们建议您键入computersnapshot(其中computer是您计算机的名称),然后单击“下一步”。在数据库列表中,选择“SQLMobile”,然后单击“下一步”。在发布类型列表中,选择“合并发布”,然后单击“下一步”。在“订阅服务器类型”页中,选择“是”以启用对SQLServerCompactEdition订阅服务器的支持,然后单击“下一步”。在要发布的对象列表中,选中“表”复选框。如果展开“表”,您将发现SQLMobile数据库中的两个表都已被选中。单击“下一步”。会通知您将向表中添加唯一标识符。所有合并项目均需要uniqueindentifier列。单击“下一步”。在“筛选表行”页中,现在即可添加对已发布数据的筛选器。对于此演练,您将无需筛选数据。单击“下一步”。在“快照代理”页中,您可以配置创建快照的时间以及快照代理运行的频率。单击“下一步”以接受默认设置。在“代理安全性”对话框中,单击“安全设置”。在“快照代理安全性”对话框中,输入前面过程中所创建帐户的登录信息。进程帐户为computer_namesnapshot_agent(其中computer_name是您计算机的名称),密码为pssw0rd。单击“确定”以保存设置。在“代理安全性”页中,单击“下一步”。在“向导操作”屏幕上,您可以确定创建发布的时间以及是否希望创建脚本文件。清除“立即创建快照”,然后单击“下一步”。在“完成该向导”屏幕上,键入SQLMobile作为发布的名称,然后单击“完成”。将创建发布。向导完成后,单击“关闭”。设置权限您必须为快照代理帐户和IIS匿名用户帐户授予权限。还必须将IIS匿名用户帐户添加到发布访问列表(PAL)中。 设置数据库权限 在的对象资源管理器中,展开“安全性”,右键单击“登录名”,然后选择“新建登录名”。在“新建登录名”对话框中,选择“Windows身份验证”,单击“搜索”,在“输入要选择的对象名称”框中键入computernamesnapshot_agent(其中computername为您的计算机名称),单击“检查名称”,然后单击“确定”。在导航窗格中,选择“用户映射”窗格。在数据库列表中,选择“distribution”和“db_owner”角色,选择“SQLMobile”和“db_owner”角色,然后单击“确定”。右键单击“登录名”,然后选择“新建登录名”。在“新建登录名”对话框中,选择“Windows身份验证”,单击“搜索”,在“输入要选择的对象名称”框中键入computernameiusr_computername(其中computername为您的计算机名称),单击“检查名称”,然后单击“确定”。在导航窗格中,选择“用户映射”窗格。在数据库列表中,选择“distribution”和“SQLMobile”,然后单击“确定”。 授予发布权限 在对象资源管理器中,展开“复制”,展开“发布”,右键单击“SQLMobile:SQLMobile”发布,然后单击“属性”。在导航窗格中,选择“发布访问列表”。单击“添加”。在“添加发布访问项”对话框中,列出了IUSR帐户。选择该帐户,然后单击“确定”。请确保IUSR帐户当前位于PAL中,然后单击“确定”。 创建发布快照 只有在创建发布快照之后才可对SQLMobile发布的订阅进行初始化。 在SQLServerManagementStudio的对象资源管理器中,展开“(本地)”计算机节点。展开“本地发布”文件夹,选择发布名称,右键单击“SQLMobile”,然后单击“查看快照代理状态”。在“查看快照代理状态”对话框中,单击“启动”。在进行下一操作之前,请确保已成功完成快照作业。 配置IIS和SQLServer2005以实现Web同步 既然已对SQLServer配置了一个发布,则必须使该发布可以通过网络供SQLServerCompactEdition客户端使用。SQLServerCompactEdition可通过IIS连接到SQLServer。即,创建虚拟目录并对其进行配置,从而允许客户端访问SQLServerCompactEdition服务器代理。 安装SQLServerCompactEdition服务器组件 在Windows资源管理器中,定位到以下目录:C:ProgramFilesMicrosoftSQLServer90ToolsBinnVSShellCommon7IDE双击sqlce30setupen.msi运行安装程序。在“安装”向导的简介屏幕上,单击“下一步”。阅读并接受Microsoft软件许可条款,然后单击“下一步”。在“系统配置检查”屏幕上,确保所有项都通过检查。如果尚未安装SQLServer2000,则将列出该列表的最后一项作为警告。因为您正在使用SQLServer2005,所以这并不是问题。单击“下一步”。在接下来的屏幕上,单击“下一步”,然后单击“安装”开始安装。单击“完成”。 配置发布以进行Web同步 在SQLServerManagementStudio的对象资源管理器中,展开“(本地)”计算机节点。展开“本地发布”文件夹,选择发布名称,右键单击该名称,然后选择“配置Web同步”。在该向导的简介屏幕上,单击“下一步”。在“订阅服务器类型”屏幕上,选择“SQLServerCompactEdition”,然后单击“下一步”。在“Web服务器”屏幕的“运行IIS的计算机”文本框中,键入您计算机的名称(如果尚未提供),然后单击“创建新的虚拟目录”。在显示的树中,展开该计算机,展开“网站”,然后选择“默认网站”。单击“下一步”。在“虚拟目录信息”屏幕上的“别名”文本框中,键入SQLMobile,然后单击“下一步”。如果收到警告对话框,请单击“是”。在“安全通信”屏幕中,选择“不需要使用安全通道(SSL)”。重要提示在生产环境中,应该启用SSL加密以保护在订阅服务器与运行IIS“客户端身份验证”屏幕的服务器之间通过Internet交换的数据,选择“客户端将以匿名方式进行连接”,然后单击“下一步”。在“匿名访问”屏幕上,单击“下一步”接受默认设置。在“快照共享访问”屏幕上,键入computersnapshot(其中computer是您计算机的名称),然后单击“下一步”。如果收到快照共享为空的警告,请单击“是”。单击“完成”。单击“关闭”。在InternetExplorer的“地址”中,输入URLhttp:/localhost/SQLMobile/sqlcesa30.dll?diag,然后单击“转到”。从而以诊断模式连接到服务器。确保SQLServerCompactEdition服务器代理诊断报告显示成功。SQLServerCompactEdition任务 如果在开发要使用SQLServerCompactEdition的应用程序之前预先创建SQLServerCompactEdition数据库和订阅,通常会节省大量时间。SQLServerManagementStudio允许您在本地计算机上创建并使用SQLServerCompactEdition数据库。然后,您可以在开发应用程序时使用此数据库。 创建新的SQLServerCompactEdition数据库 在SQLServerManagementStudio的对象资源管理器中,单击“连接”,然后选择“SQLServerCompactEdition”。在“数据库文件”字段中,选择“”。在文件名文本框中,键入c:sqlmobile.sdf,然后单击“确定”。如果您收到有关空密码的警告,请单击“是”。本教程中的数据库没有密码保护或进行加密。在“连接到服务器”对话框中,单击“连接”。将在对象资源管理器中添加名为“SQLServerCompactEditionMyComputer.sqlmobile”的新节点。 创建新的订阅 软件开发网 在对象资源管理器中,展开“SQLServerCompact”Edition节点,展开“复制”,右键单击“订阅”,然后选择“新建订阅”。在简介屏幕上,单击“下一步”。在“选择发布”屏幕的“发布服务器”下拉列表中,选择“”。在“连接到服务器”对话框中,键入或选择本地计算机名称,然后单击“连接”。在“选择发布”屏幕的发布列表中,展开“SQLMobile”,选择“SQLMobile”发布,然后单击“下一步”。在“标识订阅”屏幕上,为订阅名称键入SQLMobile,然后单击“下一步”。在“Web服务器身份验证”屏幕上,键入前面过程中创建的虚拟目录的URL。在此演练中,您已经创建了URL为http:/localhost/SQLMobile的虚拟目录。单击“订阅服务器将以匿名方式进行连接”,然后单击“下一步”。在“SQLServer身份验证”屏幕上,单击“下一步”接受默认设置。在最终屏幕上,该向导将显示示例代码,您可以在应用程序中创建订阅时使用该代码。选择示例代码(VisualBasic或C#,取决于您在创建应用程序时使用的语言),然后复制代码。若要执行复制操作,请选择该代码并按Ctrl C,启动记事本或其他文本编辑器,然后粘贴该示例代码。在使用下列步骤创建应用程序时,您将使用此代码。在复制示例代码之后,单击“完成”。单击“关闭”。 生成应用程序 创建新的智能设备项目 打开VisualStudio2005。在“文件”菜单上,选择“新建项目”。在“新建项目”对话框的“项目类型”树中,展开您所使用的开发语言,然后选择“智能设备”。在模板列表中,选择要创建的项目类型。对于此演练,请选择“PocketPC2003应用程序”。为该项目提供名称和位置,然后单击“确定”。对于此演练,请将该项目命名为SQLMobile。VisualStudio将创建新的项目,并显示Form1,这类似于在智能设备上进行显示。 添加引用 1、在解决方案资源管理器中,右键单击“引用”,然后选择“添加引用”。 注意: 如果解决方案资源管理器中没有列出“引用”文件夹,那么单击解决方案资源管理器顶部的“显示所有文件”。 2、在.net程序集列表中,选择“System.Data.SqlServerCe”,然后单击“确定”。如果没有列出System.Data.SqlServerCe,请执行下列步骤: 单击“浏览”选项卡。 定位到以下目录: C:ProgramFilesMicrosoftVisualStudio8Common7IDE 选择“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的“设计”视图,然后再次查看“数据”菜单。在“选择数据源类型”窗口上,选择“数据库”,然后单击“下一步”。在“选择您的数据连接”对话框中,单击“新建连接”。如果显示“添加连接”对话框,请单击“更改”。在“选择数据源”对话框的“数据源”中,选择“MicrosoftSQLServerCompactEdition”(如果连接已存在,则此对话框的名称可能为“更改数据源”)。在数据访问接口列表中,选择“.NETFrameworkDataProviderforSQLServerCompactEdition”。单击“继续”或“确定”。在“添加连接”对话框的“数据源”中,选择“我的电脑”。在“连接属性”部分的“数据库”中,单击“浏览”,然后浏览到前面过程中创建的数据库。如果按照步骤操作,该数据库位于c:sqlmobile.sdf。单击“测试连接”,然后单击“确定”以创建新的数据连接。在“选择您的数据连接”对话框中,单击“下一步”。如果此时出现对话框,要求您将数据文件复制到当前项目中,请单击“是”。在“保存连接字符串”窗口中,单击“下一步”。在“选择您的数据库对象”窗口中,选择“表”,然后单击“完成”。 选择要显示的数据 从“数据”菜单中,选择“显示数据源”。将“MembershipData”表从“数据源”窗口拖动到“Form1设计”窗口。将在Form1上创建数据网格,并自动提供列名称。右键单击数据网格,然后单击“属性”。在“属性”窗口中,将“停靠”值更改为“顶部”。可以通过单击出现的图形表示的顶部栏,或者在值字段中键入“顶部”来完成此操作。将会对数据网格进行移动并调整其大小以填充Form1的顶部。在数据网格的右上角,单击小箭头。从显示的菜单中,选择“生成数据窗体”。将“FlightData”表从“数据源”窗口拖动到“Form1设计”窗口。将在Form1上创建数据网格,并自动提供列名称。您可以使用该数据网格的“属性”设置将“停靠”属性设置为“底部”。 添加节点 在应用程序的代码页中,可添加包含数据库文件的路径和名称的字符串变量、用于删除数据库文件(如果已存在)的代码、用于创建与SQLServer发布的连接、同步数据和创建一个包含已发布数据的新本地数据库的代码。 添加代码 在解决方案资源管理器中,右键单击“Form1”,然后选择“查看代码”。在代码页中,查找Form1的类定义。添加一个字符串变量,并赋值为.sdf文件的路径和文件名。VisualStudio在先前步骤中创建的数据源需要数据库文件驻留在ProgramFilesApplicationName文件夹中,其中ApplicationName为应用程序的名称。例如,如果您命名了新项目SQLMobile,则应将字符串变量设置为ProgramFilesSQLMobilesqlmobile.sdf。类定义的前几行应该与以下代码类似: C# 以下是引用片段:public partial class Form1 : System.Windows.Forms.Formprivate System.Windows.Forms.MainMenu mainMenu1;string filename = Program FilesSQLMobilesqlmobile.sdf;public Form1()InitializeComponent(); VisualBasic 以下是引用片段:Public Class Form1Dim filename As New String _(Program FilesSQLMobilesqlmobile.sdf) 4.如果当前存在数据库文件,则将创建新方法将该数据库文件删除。这将确保应用程序在每次运行时加载最新的数据。此方法应该命名为DeleteDB。此代码应该与以下代码类似: C# 以下是引用片段:private void DeleteDB()if (System.IO.File.Exists(filename)System.IO.File.Delete(filename); VisualBasic 以下是引用片段:Sub DeleteDB()If System.IO.File.Exists(filename) ThenSystem.IO.File.Delete(filename)End IfEnd 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;tryrepl.AddSubscription(AddOption. CreateDatabase);repl.Synchronize();catch (SqlCeException e)MessageBox.Show(e.ToString(); VisualBasic 以下是引用片段:Sub Sync()Dim repl As New SqlCeReplication()repl.InternetUrl = http:/SQLMobile/sqlcesa30.dllrepl.Publisher = repl.PublisherDatabase = SQLMobilerepl.PublisherSecurityMode = SecurityType.NTAuthenticationrepl.Publication = SQLMobilerepl.Subscriber = SQLMobilerepl.SubscriberConnectionS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论