For a Microsoft JScript .NET version of this article, see 308497 .
This article refers to the following Microsoft .NET Framework Class Library namespace:
IN THIS TASK
The code samples in this article use http://localhost as the Web server. The code samples also use the Northwind database, which is included with Microsoft SQL Server as the backend database.
- Start Microsoft Visual Studio .NET.
- On the File menu, point to New, and then click Project.
- In the New Project dialog box, click Visual C# Projects under Project Types, and then click ASP.NET Web Service under Templates.
- In the Name text box, type csCustomer. In the Location text box, type the URL to your server. If you are using the local server, type http://localhost. Click OK.
- On the View menu, click Code to switch to code view.
- Add the following code to the top of the Code window, just after the other using statements:
//Use data access objects from the SqlClient namespace.
- Locate the following code:After this code, add the following code:
//CODEGEN: The ASP.NET Web Services Designer requires this call.
public string CountWords(string Sentence)
string Words = Sentence.Split(' ');
return "Your sentence contains " + Words.Length + " word(s).";
public DataSet GetCustOrders(string IDMask)
IDMask = IDMask.Replace("'", "''");
//IDMask is the Customer ID that the client submits.
//Replace single quotation marks with two single quotation marks
//so that all single quotation marks in the CustomerID are parsed correctly.
//Modify this connection string to use your SQL Server and log on information.
SqlConnection con = new SqlConnection("server=<your server>;uid=<your user id>;
//Open the Customers table to serve as the parent table.
SqlDataAdapter daCust = new SqlDataAdapter("Select * From Customers
Where CustomerID Like '%" + IDMask + "%'", con);
//Open the Orders table to serve as the child table.
SqlDataAdapter daOrders = new SqlDataAdapter("Select * From Orders
Where CustomerID Like '%" + IDMask + "%'", con);
//Create a client-side DataSet to hold the Customers and Orders tables.
DataSet ds=new DataSet();
//Explicitly open the connection to allow explicit closing.
//Fill the DataSet with the Customers table and the Orders table.
//Explicitly close the connection - do not wait for garbage collection.
//Relate Customers to Orders.
//The relationship is Orders nested in Customers.
ds.Relations.Nested = true;
//Return the DataSet to the client.
- Modify the SqlConnection string as appropriate for your environment.
- Press the F5 key to compile and run the Web Service. A Web page is returned that permits you to interact with the Web Service from Microsoft Internet Explorer.
Note that the URL of the returned page is http://localhost/csCustomer/Service1.asmx.
- On the Service1 Web Page, click GetCustOrders. A Web page is returned that displays details about the GetCustOrders Web Method.
Note that the URL of the returned page is http://localhost/csCustomer/Service1.asmx?op=GetCustOrders.
- In the Text section of the GetCustOrders page, type AL in the Value text box next to the IDMask parameter.
- Click Invoke. A Web page is returned that displays the results of the GetCustOrders Web method as a hierarchical XML document.
Note that the URL of the returned page is http://localhost/csCustomer/Service1.asmx/GetCustOrders?IDMask=AL.
- Close the displayed Web pages.
- In Visual Studio .NET, create a new Visual C# .NET Windows Application project. By default, Form1 is added to the project.
- Add one TextBox control, one Button control, and one DataGrid control to Form1. TextBox1, Button1, and DataGrid1 are added to the project by default.
- On the Project menu, click Add Web Reference. A dialog box appears that displays sources of Web references.
- In the Add Web Reference dialog box, type the URL for your Web service (for example, http://localhost/csCustomer/Service1.asmx), press ENTER, and then click Add Reference. Notice that a new entry named Web Reference appears in Solution Explorer.
- In the Visual C# project, double-click Button1 to open its Code window, and paste the following code into the Button1_Click event handler:
//Use the Web Service that your Web server provides.
localhost.Service1 MyService = new localhost.Service1();
//Invoke the public WebMethod that returns a DataSet.
//Bind the DataGrid to the returned DataSet.
dataGrid1.DataSource = MyService.GetCustOrders(textBox1.Text);
dataGrid1.DataMember = "Cust";
- Press the F5 key to compile and run the client application.
- Type AL in the text box.
- Click Button1. Notice that DataGrid1 displays the Customer records that contain "AL" in the CustomerID field.
- In DataGrid1, click the plus sign (+) next to ALFKI to display the CustOrd relation that you defined in the Web method.
- Click CustOrd to display the Orders that are related to the Customers by CustomerID ALKFI.
Article ID: 308495 - Last Review: Mar 23, 2009 - Revision: 1