4.3 ExecuteParameterizedStoredProceduresinADO.NET To take advantage of storedprocedures to their full power, you need to be able to pass parameters so that specific criteria can be used. This How-To describes how to create parameters off the OleDbCommand objects to pass parameters to SQL Server. You need to execute a parameterizedstored procedure in your application. How do you do this using Visual Basic .NET and ADO.NET? Technique In ADO, you have a Command object to executestored procedures, among other tasks. In ADO.NET, you also have a Command object that performs basically the same task. In fact, many of the properties and methods that you use are the same. You can see a list of those in Table 4.4. Table 4.4. Objects That Are Used for This Technique, with Properties and Methods Object Property Description/Method Connection ConnectionString Contains the connection string that is used. Connection Open Opens the connection that the Command object uses. Command cmdText Specifies the SQL statement to use. Can be SQL statement or names of objects such as tables or stored procedures. Command Connection Uses the Connection object. Command CommandType Specifies the type of command you want to execute. Can be one of the following command types: StoredProcedure, DirectTable, or Text. Command Parameters Parameters to pass to the stored procedure. Command ExecuteReader Creates a DataReader object with the data that the command object specifies. DataReader Read Reads the next record in the DataReader, and also tests the end of the data returned. DataReader GetString Returns the current record, getting the column specified, and returns it as string. DataReader GetInt32 Returns the current record, getting the column specified, and returns it as 32-bit integer. You will use these objects and their properties and methods for the following steps. Steps Open and run the VB.NET-Chapter 4 solution. From the main form, click on the command button with the caption How-To 4.3. When the form loads, click on the View button to display the orders for the customer ID that is specified. By default, this is ALKI. A TextBox control is then displayed on the bottom of the form. You can see the form in Figure 4.2. 1. Create a new Windows Form. 2. Add the following controls, setting the properties as listed in Table 4.5. Table 4.5. Controls Property Settings Object Property Setting Label Name Caption Label1 Products and Quantities Ordered By: TextBox Name Text txtCustID ALFKI Button Name Text btnView &View TextBox Name MultiLine txtResults True 3. Enter the following code to the Click event btnView. This code takes the connection and creates the command object. The name of the stored procedure is passed, and the command type is specified, which is CommandType.StoredProcedure. Next, parameters and the DataReader are created. The last task is to iterate through the data and add it to the display text box. 4. Private Sub btnView_Click(ByVal sender As System.Object, _ 5. ByVal e As System.EventArgs) Handles btnView.Click 6. 7. Dim ocnn As New OleDb.OleDbConnection(BuildCnnStr("(local)", 8. "Northwind")) 9. Dim ocmdCustHist As New OleDb.OleDbCommand("CustOrderHist", ocnn) 10. Dim odrCustHist As OleDb.OleDbDataReader 11. 12. Try 13. '-- Specify the name of the stored procedure 14. ocmdCustHist.CommandType = CommandType.StoredProcedure 15. 16. '-- Specify the parameters. 17. ocmdCustHist.Parameters.Add("@CustomerID", Me.txtCustID.Text) 18. 19. '-- Open the connection object. 20. ocnn.Open() 21. 22. '-- Establish the DataRead object. 23. odrCustHist = _ 24. ocmdCustHist.ExecuteReader(CommandBehavior.SequentialAccess) 25. 26. '-- Iterate through the data loaded, building the results string. 27. Do While odrCustHist.Read 28. Me.txtResults.Text &= odrCustHist.GetString(0) & _ 29. ", " & odrCustHist.GetInt32(1) & vbCrLf 30. Loop 31. 32. Catch excpData As Exception 33. MessageBox.Show("Error Occurred: " & excpData.Message) 34. 35. End Try 36. End Sub Figure 4.2. This form uses the Command object with a stored procedure to populate the TextBox control. How It Works When the user clicks on the View button with Customer ID filled in, the text box below is filled in, displaying order information for that customer. Comments Using the technique presented here, you can pretty well perform the majority of the tasks you need to by using Command objects and stored procedures. . You need to execute a parameterized stored procedure in your application. How do you do this using Visual Basic .NET and ADO. NET? Technique In ADO, you have. 4.3 Execute Parameterized Stored Procedures in ADO. NET To take advantage of stored procedures to their full power, you