本文的发布号曾为 CHS310143
有关本文的 Microsoft Visual Basic .NET 版本,请参见
308056。
有关本文的 Microsoft Visual J# .NET 版本,请参见 320634。
本文引用下面的 Microsoft .NET 框架类库名称空间:
有关本文的 Microsoft Visual J# .NET 版本,请参见 320634。
本文引用下面的 Microsoft .NET 框架类库名称空间:
- System.Data.SqlClient
本任务的内容
概要
本分步指南演示如何使用 DataSet 对象通过 Web 服务接收并更新数据库数据。本文还演示如何在客户端应用程序中引用 Web 服务并在 DataGrid 控件中显示返回的 DataSet,以便您可以更新数据并将更新发回到服务器。备注:对于单个表中的更新,您只能使用本文中的方法。
返回页首
要求
下面的列表列出了推荐使用的硬件、软件、网络结构以及所需的 Service Pack:- Microsoft Windows 2000 Professional、Windows 2000 Server、Windows 2000 Advanced Server 或 Windows NT 4.0 Server
- Microsoft Visual Studio .NET
- Visual Studio .NET
- ADO.NET 基础知识和语法
- ASP.NET 基础知识和语法
返回页首
创建 Web 服务
- 启动 Visual Studio .NET。
- 按照下列步骤新建一个 Visual C# ASP.NET Web 服务项目:
- 在文件菜单上,指向新建,然后单击项目。
- 在新建项目对话框中,单击项目类型下面的 Visual C# 项目,然后单击模板下面的 ASP.NET Web 服务。
- 在位置框中,键入服务器和项目名称 csUpdateData 的 URL(例如,http://localhost/csUpdateData)。URL 的 http://localhost 部分在本地 Web 服务器上运行 Web 服务。单击确定。
- 在 Service1.asmx.cs[Design] 选项卡,右键单击该页,然后单击查看代码切换到"代码"视图。将出现 Web 服务的"代码"窗口。
- 将下面的 using 语句添加到代码窗口的顶部:
//Use data access objects from the SqlClient namespace. using System.Data.SqlClient;
- 在下列代码之后
public Service1() { //CODEGEN:This call is required by the ASP.NET Web Services Designer InitializeComponent(); }
添加以下代码:[WebMethod] public DataSet GetCustomers() { SqlConnection con = new SqlConnection("server=servername;uid=login; pwd=password;database=northwind"); SqlDataAdapter daCust = new SqlDataAdapter("Select * From Customers", con); DataSet ds = new DataSet(); daCust.Fill(ds, "Cust"); return ds; } [WebMethod] public DataSet UpdateCustomers(DataSet ds) { SqlConnection con = new SqlConnection("server=servername;uid=login; pwd=password;database=northwind"); SqlDataAdapter daCust = new SqlDataAdapter("Select * From Customers", con); SqlCommandBuilder cbCust = new SqlCommandBuilder(daCust); daCust.Update(ds, "Cust"); return ds; }
- 修改 SqlConnection 字符串以正确连接到正在运行 SQL Server 的计算机。
测试 Web 服务
- 按 F5 键编译并运行 Web 服务。将显示一个 Web 页,它允许您在 Microsoft Internet Explorer 中与 Web 服务进行交互。
注意返回页的 URL 是 http://localhost/csUpdateData/Service1.asmx。 - 在 Service1 Web 页上,单击 GetCustomers。您会看到一个 Web 页,它包括有关 GetCustomers Web 方法的详细信息。
- 关闭 Web 页。
创建客户端应用程序
- 在 Visual Studio .NET,新建一个 Visual C# Windows 应用程序项目。默认将 Form1 添加到该项目中。
- 将两个 Button 控件和一个 DataGrid 控件添加到 Form1。Button1、Button2 和 DataGrid1 被默认添加到项目中。
- 将 Button1 的 Text 属性更改为 Load,然后将 Button2 的 Text 属性更改为 Save。
- 在项目菜单中,单击添加 Web 引用。键入您的 Web 服务的 URL(例如,键入 http://localhost/csUpdateData/Service1.asmx ),按 ENTER 键,然后单击添加引用。新近添加的 Web 引用条目出现在解决方案资源管理器的视图菜单中。
- 在 Visual C# 项目中,打开 Button1 的代码窗口。将以下代码添加到 Button1_Click (Load) 事件过程中:
localhost.Service1 MyService = new localhost.Service1(); dataGrid1.DataSource = MyService.GetCustomers(); dataGrid1.DataMember = "Cust";
- 切换到窗体视图。
- 打开 Button2 的代码窗口。将以下代码添加到 Button2_Click (Save) 事件过程中:
localhost.Service1 MyService = new localhost.Service1(); DataSet ds = (DataSet) dataGrid1.DataSource; DataSet dsChanges = ds.GetChanges(); if (dsChanges != null) { ds.Merge(MyService.UpdateCustomers(dsChanges), true); }
测试客户端应用程序
- 按 F5 键编译并运行客户端应用程序。
- 请注意,最初 DataGrid1 是空的。单击 Load。注意 DataGrid1 现在显示顾客记录。
- 在 DataGrid1 中,修改一些数据,然后单击 Save。
备注:不要更改关键字段。如果更改了关键字段,将收到错误消息,表明您破坏了服务器上的引用完整性。
这篇文章中的信息适用于:
- Microsoft ADO.NET(随 .NET 框架一起提供)
- Microsoft Visual C# .NET (2002)
最近更新: | 2002-6-18 (1.0) |
关键字 | kbDSupport kbhowto kbHOWTOmaster kbSqlClient kbSystemData KB310143 |