打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
在 Visual Studio .NET 中使用 SQL Server 2000 创建数据...
必须将 SQLXML 组件引用添加到项目中后才能使用 SQLXML 托管类。
添加 SQLXML 组件引用
打开解决方案资源管理器:在 View(视图)菜单中,单击 Solution Explorer(解决方案资源管理器)。
在 ServiceCall 项目下,右键单击 References(引用),然后单击 Add Reference(添加引用)。
在 Add Reference(添加引用)对话框中,单击 .NET 选项卡。
找到名为 Microsoft.Data.SqlXml 的组件,并突出显示该组件。
单击 Select(选择),然后单击 OK(确定)。
保存 ServiceCall 项目。
打开 Form3.vb,在该窗体中 GetXML 按钮旁边添加一个新按钮,然后将新按钮的 Name 属性和 Text 属性更改为 SQLXML。
双击 SQLXML 按钮打开单击事件的代码窗口并添加以下代码。请记住更改数据源、用户 ID 和密码,使其与您的服务器匹配。 Dim strm As System.IO.Stream Dim sqlXmlCmd As New Microsoft.Data.SqlXml.SqlXmlCommand _ ("Provider=SQLOLEDB;Data Source=localhost;" _ & "Initial Catalog=ServiceCall;User ID=sa;password=yourpassword") sqlXmlCmd.CommandType = Microsoft.Data.SqlXml.SqlXmlCommandType.Sql sqlXmlCmd.CommandText = ("Select CustomerID, CustomerName," _ & "Phone from Customers for XML auto") strm = sqlXmlCmd.ExecuteStream() Dim streamRdr As New System.IO.StreamReader(strm) Me.TextBox1.Text = streamRdr.ReadToEnd().ToString
在此代码示例中,我们首先定义要使用的对象和变量。Stream 对象 (strm) 将保存从查询返回的 XML 数据。然后,定义 SqlXmlCommand 对象 (sqlXmlCmd),并将连接字符串作为参数传递给该对象。
下一步,设置 SqlXmlCommand 对象上的参数。CommandType 被设置为 Sql,它是一个默认值,在此列出以帮助您理解。CommandText 被设置为查询的值,该查询就是我们在此示例的第一部分使用的同一个查询。然后,我们将调用 SqlXmlCommand 对象的 ExecuteStream 方法,该方法将执行 SQL 语句,并将 XML 数据放入 Stream 对象中。
下一步,我们定义 StreamReader 对象 (streamRdr),并将 Stream 对象 (strm) 作为参数传递给该对象。这样将使用 XML 数据填充 StreamReader 对象。在最后一步中,我们将加载带有来自 StreamReader 对象的 XML 数据的文本框。
应仍将 Startup 对象设置为 Form3,然后保存项目、运行应用程序(按 F5 键)并单击 SQLXML 按钮。输出结果应该与单击 GetXML 按钮时的输出完全一样,如图 24 所示。
数据库项目
通过 Visual Studio .NET,您可以创建为脚本、查询、数据备份文件和命令文件提供储备库的数据库项目。创建和维护数据库项目的方法与其他 Visual Studio .NET 项目相同。通过解决方案资源管理器可以访问数据库项目,其中提供了解决方案内所有项目的分层视图。
创建数据库项目
打开解决方案资源管理器:在 View(视图)菜单中,单击 Solution Explorer(解决方案资源管理器)。
右键单击 Solution 'ServiceCall',突出显示 Add(添加),然后单击 New Project(新建项目)。
在 Project Types:(项目类型:)下,展开 Other Projects(其他项目)文件夹,然后单击 Database Projects(数据库项目)。
在 Templates(模板)下,单击 Database Project(数据库项目)模板。
将项目命名为 ServiceCallDB,然后单击 OK(确定)。
图 25:Add New Project(添加新项目)对话框(单击图片以查看大图像)
在 Add Database Reference(添加数据库引用)对话框中,选择 ServiceCall 数据库的连接,然后单击 OK(确定)创建项目。
图 26:Add Database Reference(添加数据库引用)对话框
生成创建脚本和导出数据
注意:生成创建脚本需要使用 Visual Studio .NET Enterprise Edition。
生成创建脚本工具是服务器资源管理器中另一个专用于 SQL Server 的功能,此工具有助于使开发人员的工作更加轻松。使用生成创建脚本工具,您可以编写整个数据库或者数据库中的选定对象的脚本文件。然后可以使用该脚本文件来恢复数据库或对象,或在其他服务器上部署数据库。
除了创建脚本外,您还可以从单个表中导出数据。这在测试过程中这是一个很有用的工具。如果需要进行多次重复测试,而在这期间表将被更新或删除,则可以将表中的数据导出到一个文件中,然后在每个测试开始时恢复,以提供一个一致的起点。
为了演示这些功能,我们将编写 Customers 表的脚本,并将数据导出到一个备份文件,以便能够将数据恢复到其初始状态。
生成脚本
在服务器资源管理器中的 Data Connections(数据连接)下,展开 Tables(表)节点,右键单击 Customers 表,然后单击 Generate Create Scripts(生成创建脚本)。如果使用的不是 Windows 2000 或者 Windows NT 的集成安全性,系统可能会提示您为运行 SQL Server 的计算机提供用户 ID 和密码。将打开 Generate Create Scripts(生成创建脚本)对话框(使用过 SQL Server 企业管理器的用户应该对此对话框非常熟悉)。
该对话框包含三个选项卡:General(常规)、Formatting(设置格式)和 Options(选项)。接受这三个选项卡的默认设置,然后单击 OK(确定)。将打开 Browse for Folder(浏览文件夹)对话框。请注意,Visual Studio .NET 已经选择了前面创建的数据库项目中的 Create Scripts 文件夹。
单击 OK(确定)。将创建 Customers 表的脚本,此脚本将置于 Database Project 文件夹中。
将创建以下四个文件。
文件 说明 Dbo.Customers.tab 包含一个用来创建表的 SQL 脚本 Dbo.Customers.kci 包含一个用来创建主键和索引的 SQL 脚本 Dbo.Customers.fky 包含一个用来创建外键的 SQL 脚本 Dbo.Customers.ext 包含一个用来创建扩展属性的 SQL 脚本
将数据表导出到文件
在服务器资源管理器中,右键单击 Customers 表,然后单击 Export Data(导出数据)。将再次打开 Browse for Folder(浏览文件夹)对话框,并定位到数据库项目中的 Create Scripts(创建脚本)文件夹。
单击 OK(确定)。Customers 表中的数据将被放置在名为 Dbo.Customers.dat 的文件中。
数据库项目命令文件
重要信息:命令文件要求使用 Visual Studio .NET Enterprise Edition。
使用命令文件可以将数据库项目中的多个脚本打包到一个命令中,从而将多个脚本的处理简化为一个步骤。
创建命令文件
在解决方案资源管理器中,右键单击包含要打包的脚本的数据库项目文件夹(本示例中为 Create Scripts [创建脚本] 文件夹)。
单击 Create Command File(创建命令文件)。将显示 Create Command File(创建命令文件)对话框。
将文件命名为 RestoreCustomers.cmd。
选择要包含到文件中的验证类型和脚本。在本示例中,请单击 Add All >>(全部添加 >>),然后单击 Add Data(添加数据)。将显示 Add Data(添加数据)对话框。
Add Data(添加数据)对话框显示该命令文件可以使用的所有数据文件。选择 Dbo.Customers.dat,然后单击 OK(确定)。
在 Create Command File(创建命令文件)对话框中,单击 OK(确定)。RestoreCustomers.cmd 文件将被置于 Create Scripts(创建脚本)文件夹中。
运行命令文件
在数据库项目中,右键单击命令文件,然后单击 Run(运行)。 注意:命令文件只有在 Windows 2000 Server 或更高版本中才能正常运行。
小结
本文中的示例演示了 Visual Studio .NET IDE 中内置的数据库工具的强大功能。无需退出 Visual Studio .NET IDE 即可生成完整的应用程序,其中包括数据库、用户定义函数、存储过程和应用程序代码。此外,我们还能使用 Visual Studio .NET IDE 中包含的同样丰富的调试工具,在存储过程上执行源代码级别的调试。Visual Studio .NET 为您提供了更快、更好地创建应用程序所需的工具。
附录 1: 数据库装载脚本
要使用示例数据填充 ServiceCall 数据库中的表,请在 SQL 查询分析器中运行以下数据库加载脚本。
Use ServiceCallInsert into Customers values('cust1','Customer One','123 Main St.','Chicago','IL','60601','(312) 555-1212')Insert into Customers values('cust2','Customer Two','248 Elm St.','Serverville','IL','60679','(872) 555-4519')Insert into Customers values('cust3','Customer Three','831 First St.','Netville','IL','60831','(763) 555-6728')Insert into ServiceCall (CustomerID, ServiceDate, LaborRate, Hours, PartsCost)values('cust1','Sep 14 2001 12:00AM', 55.00, 3, 200.00)Insert into ServiceCall (CustomerID, ServiceDate, LaborRate, Hours, PartsCost)values('cust1','Sep 17 2001 12:00AM', 55.00, 1.5, 70.00)Insert into ServiceCall (CustomerID, ServiceDate, LaborRate, Hours, PartsCost)values('cust1','Sep 19 2001 12:00AM', 55.00, 2, 0.00)Insert into ServiceCall (CustomerID, ServiceDate, LaborRate, Hours, PartsCost)values('cust2','Sep 25 2001 12:00AM', 60.00, 3.5, 180.00)Insert into ServiceCall (CustomerID, ServiceDate, LaborRate, Hours, PartsCost)values('cust3','Sep 27 2001 12:00AM', 65.00, 4.5, 275.00)附录 2: 详细信息
有关 Microsoft .NET 技术的详细信息,请参阅以下 Web 站点。
Visual Studio .NET
Web Services
SQL Server
SQL Server and XML
附录 3: 关于作者
Matt Mannion 是 Clarity Consulting Inc. 的业务经理,Clarity Consulting Inc. 是位于芝加哥的一家技术咨询公司,也是 Microsoft 的金牌认证伙伴。Matt 为包括零售业、金融服务业、出版业和银行业在内的各种行业设计开发了多个大规模、基于 Web 的系统。您可以通过以下方式与 Matt 联系:mailto:mmannion@claritycon.com。
Jon Rauschenberger 是 Clarity Consulting Inc. 的合伙人和技术主管,他经常出席各种会议(如 Microsoft Tech*Ed、VBITS、Comdex 和 DevDays)并发表演讲。Jon 还是 MSDN 芝加哥地区的区域主管。您可以通过以下方式与 Jon 联系:mailto:jrausch@claritycon.com。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
VS.NET中使用SQL Server 2000创建数据库应用程序
[PowerDesign]将数据库从SQL Server数据库转换为MySQL
linux系统mysql数据库定时备份数据(sql脚本)
使用 PowerDesigner 设计数据库
创建ASP.NET数据存储层
powerDesigner使用(二)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服