Mega Code Archive

 
Categories / ASP.Net Tutorial / ADO Net Database
 

The method adds an output parameter to the SqlCommand object

File: GetTotals.sql CREATE PROCEDURE dbo.GetTotals (   @SumTotals Money OUTPUT ) AS SELECT @SumTotals = SUM(Totals) FROM Products File: App_Code\Product.cs using System; using System.Data; using System.Data.SqlClient; using System.Web.Configuration; using System.Collections.Generic; public class Product {     private static readonly string _connectionString;     private string _title;     private decimal _boxOfficeTotals;     public string Title     {         get { return _title; }         set { _title = value; }     }     public decimal Totals     {         get { return _boxOfficeTotals; }         set { _boxOfficeTotals = value; }     }     public List<Product> GetPrice(out decimal SumTotals)     {         List<Product> results = new List<Product>();         SqlConnection con = new SqlConnection(_connectionString);         SqlCommand cmd = new SqlCommand("GetTotals", con);         cmd.CommandType = CommandType.StoredProcedure;         cmd.Parameters.Add("@SumTotals", SqlDbType.Money).Direction = ParameterDirection.Output;         using (con)         {             con.Open();             SqlDataReader reader = cmd.ExecuteReader();             while (reader.Read())             {                 Product newProduct = new Product();                 newProduct.Title = (string)reader["Title"];                 newProduct.Totals = (decimal)reader["Totals"];                 results.Add(newProduct);             }             reader.Close();             SumTotals = (decimal)cmd.Parameters["@SumTotals"].Value;        }        return results;     }    static Product()     {         _connectionString = WebConfigurationManager.ConnectionStrings["Products"].ConnectionString;     } } File: Web.config <configuration>   <connectionStrings>     <add name="Products"           connectionString="Data Source=.\SQLEXPRESS;          AttachDbFilename=|DataDirectory|MyDatabase.mdf;Integrated Security=True;User Instance=True" />   </connectionStrings> </configuration>             File: ShowProduct.aspx <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server">     protected void srcProducts_Selected(object sender, ObjectDataSourceStatusEventArgs e)     {         decimal sum = (decimal)e.OutputParameters["SumTotals"];         lblSum.Text = sum.ToString("c");     } </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">     <title>Show Product</title> </head> <body>     <form id="form1" runat="server">     <div>     <asp:GridView         id="grdProducts"         DataSourceID="srcProducts"         AutoGenerateColumns="false"         Runat="server">         <Columns>         <asp:BoundField DataField="Title" HeaderText="Title" />         <asp:BoundField             DataField="Totals"             HeaderText="Box Office"             HtmlEncode="false"             DataFormatString="{0:c}" />         </Columns>     </asp:GridView>     <br />     Sum of Box Office Totals:     <asp:Label         id="lblSum"         Runat="server" />     <asp:ObjectDataSource         id="srcProducts"         TypeName="Product"         SelectMethod="GetPrice"         Runat="server" OnSelected="srcProducts_Selected">         <SelectParameters>         <asp:Parameter             Name="SumTotals"             Type="Decimal"             Direction="Output" />         </SelectParameters>     </asp:ObjectDataSource>     </div>     </form> </body> </html>