Mega Code Archive

 
Categories / ASP.Net Tutorial / ADO Net Database
 

Using two ObjectDataSource controls in one page

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ObjectDataSourceParameters.aspx.cs"  Inherits="ObjectDataSourceParameters" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">     <title>Untitled Page</title> </head> <body>     <form id="form1" runat="server">     <div>         <asp:ObjectDataSource ID="sourceEmployeesList"                                runat="server"                                SelectMethod="GetEmployees"                               TypeName="EmployeeDB"/>         <asp:ObjectDataSource ID="sourceEmployee"                                runat="server"                                SelectMethod="GetEmployee"                               TypeName="EmployeeDB"                                OnSelecting="sourceEmployee_Selecting">                 <SelectParameters>                     <asp:ControlParameter ControlID="lstEmployees"                                            Name="employeeID"                                            PropertyName="SelectedValue" />                 </SelectParameters>             </asp:ObjectDataSource>         <asp:ListBox ID="lstEmployees"                       runat="server"                       DataSourceID="sourceEmployeesList"                       DataTextField="EmployeeID"                      Width="131px"                       AutoPostBack="True"                       Height="171px"/>         <asp:DetailsView ID="DetailsView1"                           runat="server"                           AutoGenerateRows="False"                           BorderStyle="Groove"                          BorderWidth="2px"                           CellPadding="4"                           DataSourceID="sourceEmployee"                           Font-Names="Verdana"                          Font-Size="Small"                           ForeColor="#333333"                           GridLines="None"                           Height="50px"                           Width="125px">             <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />             <CommandRowStyle BackColor="#FFFFC0" Font-Bold="True" />             <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />             <FieldHeaderStyle BackColor="#FFFF99" Font-Bold="True" />             <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />             <Fields>                 <asp:BoundField DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" />                 <asp:BoundField DataField="EmployeeID" HeaderText="EmployeeID" SortExpression="EmployeeID" />                 <asp:BoundField DataField="LastName" HeaderText="LastName" SortExpression="LastName" />                 <asp:BoundField DataField="TitleOfCourtesy" HeaderText="TitleOfCourtesy" SortExpression="TitleOfCourtesy" />             </Fields>             <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />             <AlternatingRowStyle BackColor="White" />         </asp:DetailsView>          </div>     </form> </body> </html> File: ObjectDataSourceParameters.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class ObjectDataSourceParameters : System.Web.UI.Page {   protected void sourceEmployee_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)   {     if (e.InputParameters["employeeID"] == null) e.Cancel = true;   } } File: Web.config <?xml version="1.0"?> <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">   <appSettings/>   <connectionStrings>     <add name="Northwind" connectionString="Data Source=localhost;Initial Catalog=Northwind;Integrated Security=SSPI"/>   </connectionStrings>    </configuration> File: EmployeeDB.cs using System; using System.Data; using System.Data.SqlClient; using System.Configuration; using System.Web.Configuration; using System.Collections; public class EmployeeDetails {   private int employeeID;   private string firstName;   private string lastName;   private string titleOfCourtesy;   public int EmployeeID   {     get {return employeeID;}     set {employeeID = value;}   }   public string FirstName   {     get {return firstName;}     set {firstName = value;}   }   public string LastName   {     get {return lastName;}     set {lastName = value;}   }   public string TitleOfCourtesy   {     get {return titleOfCourtesy;}     set {titleOfCourtesy = value;}   }   public EmployeeDetails(int employeeID, string firstName, string lastName,     string titleOfCourtesy)   {     this.employeeID = employeeID;     this.firstName = firstName;     this.lastName = lastName;     this.titleOfCourtesy = titleOfCourtesy;   }   public EmployeeDetails(){} } public class EmployeeDB {   private string connectionString;   public EmployeeDB()   {     connectionString = WebConfigurationManager.ConnectionStrings["Northwind"].ConnectionString;   }   public EmployeeDB(string connectionString)   {     this.connectionString = connectionString;   }   public int InsertEmployee(EmployeeDetails emp)   {     SqlConnection con = new SqlConnection(connectionString);     SqlCommand cmd = new SqlCommand("InsertEmployee", con);     cmd.CommandType = CommandType.StoredProcedure;     cmd.Parameters.Add(new SqlParameter("@FirstName", SqlDbType.NVarChar, 10));     cmd.Parameters["@FirstName"].Value = emp.FirstName;     cmd.Parameters.Add(new SqlParameter("@LastName", SqlDbType.NVarChar, 20));     cmd.Parameters["@LastName"].Value = emp.LastName;     cmd.Parameters.Add(new SqlParameter("@TitleOfCourtesy", SqlDbType.NVarChar, 25));     cmd.Parameters["@TitleOfCourtesy"].Value = emp.TitleOfCourtesy;     cmd.Parameters.Add(new SqlParameter("@EmployeeID", SqlDbType.Int, 4));     cmd.Parameters["@EmployeeID"].Direction = ParameterDirection.Output;        try      {       con.Open();       cmd.ExecuteNonQuery();       return (int)cmd.Parameters["@EmployeeID"].Value;     }     catch (SqlException err)      {       throw new ApplicationException("Data error.");     }     finally      {       con.Close();           }   }   public void UpdateEmployee(EmployeeDetails emp)   {     SqlConnection con = new SqlConnection(connectionString);     SqlCommand cmd = new SqlCommand("UpdateEmployee", con);     cmd.CommandType = CommandType.StoredProcedure;     cmd.Parameters.Add(new SqlParameter("@FirstName", SqlDbType.NVarChar, 10));     cmd.Parameters["@FirstName"].Value = emp.FirstName;     cmd.Parameters.Add(new SqlParameter("@LastName", SqlDbType.NVarChar, 20));     cmd.Parameters["@LastName"].Value = emp.LastName;     cmd.Parameters.Add(new SqlParameter("@TitleOfCourtesy", SqlDbType.NVarChar, 25));     cmd.Parameters["@TitleOfCourtesy"].Value = emp.TitleOfCourtesy;     cmd.Parameters.Add(new SqlParameter("@EmployeeID", SqlDbType.Int, 4));     cmd.Parameters["@EmployeeID"].Value = emp.EmployeeID;     try     {       con.Open();       cmd.ExecuteNonQuery();     }     catch (SqlException err)     {       throw new ApplicationException("Data error.");     }     finally     {       con.Close();     }   }   public void UpdateEmployee(int EmployeeID, string firstName, string lastName, string titleOfCourtesy)   {     SqlConnection con = new SqlConnection(connectionString);     SqlCommand cmd = new SqlCommand("UpdateEmployee", con);     cmd.CommandType = CommandType.StoredProcedure;     cmd.Parameters.Add(new SqlParameter("@FirstName", SqlDbType.NVarChar, 10));     cmd.Parameters["@FirstName"].Value = firstName;     cmd.Parameters.Add(new SqlParameter("@LastName", SqlDbType.NVarChar, 20));     cmd.Parameters["@LastName"].Value = lastName;     cmd.Parameters.Add(new SqlParameter("@TitleOfCourtesy", SqlDbType.NVarChar, 25));     cmd.Parameters["@TitleOfCourtesy"].Value = titleOfCourtesy;     cmd.Parameters.Add(new SqlParameter("@EmployeeID", SqlDbType.Int, 4));     cmd.Parameters["@EmployeeID"].Value = EmployeeID;     try     {       con.Open();       cmd.ExecuteNonQuery();     }     catch (SqlException err)     {       throw new ApplicationException("Data error.");     }     finally     {       con.Close();     }   }   public void DeleteEmployee(int employeeID)   {     SqlConnection con = new SqlConnection(connectionString);     SqlCommand cmd = new SqlCommand("DeleteEmployee", con);     cmd.CommandType = CommandType.StoredProcedure;     cmd.Parameters.Add(new SqlParameter("@EmployeeID", SqlDbType.Int, 4));     cmd.Parameters["@EmployeeID"].Value = employeeID;            try      {       con.Open();       cmd.ExecuteNonQuery();     }     catch (SqlException err)      {       throw new ApplicationException("Data error.");     }     finally      {       con.Close();           }   }   public EmployeeDetails GetEmployee(int employeeID)   {     SqlConnection con = new SqlConnection(connectionString);     SqlCommand cmd = new SqlCommand("GetEmployee", con);     cmd.CommandType = CommandType.StoredProcedure;     cmd.Parameters.Add(new SqlParameter("@EmployeeID", SqlDbType.Int, 4));     cmd.Parameters["@EmployeeID"].Value = employeeID;              try      {       con.Open();       SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.SingleRow);              reader.Read();       EmployeeDetails emp = new EmployeeDetails(         (int)reader["EmployeeID"], (string)reader["FirstName"],         (string)reader["LastName"], (string)reader["TitleOfCourtesy"]);       reader.Close();       return emp;     }     catch (SqlException err)      {       throw new ApplicationException("Data error.");     }     finally      {       con.Close();           }   }   public EmployeeDetails[] GetEmployees()   {     SqlConnection con = new SqlConnection(connectionString);     SqlCommand cmd = new SqlCommand("GetAllEmployees", con);     cmd.CommandType = CommandType.StoredProcedure;              ArrayList employees = new ArrayList();     try      {       con.Open();       SqlDataReader reader = cmd.ExecuteReader();       while (reader.Read())       {         EmployeeDetails emp = new EmployeeDetails(           (int)reader["EmployeeID"], (string)reader["FirstName"],           (string)reader["LastName"], (string)reader["TitleOfCourtesy"]);         employees.Add(emp);       }       reader.Close();              return (EmployeeDetails[])employees.ToArray(typeof(EmployeeDetails));     }     catch (SqlException err)      {       throw new ApplicationException("Data error.");     }     finally      {       con.Close();           }   }          public int CountEmployees()   {     SqlConnection con = new SqlConnection(connectionString);     SqlCommand cmd = new SqlCommand("CountEmployees", con);     cmd.CommandType = CommandType.StoredProcedure;              try      {       con.Open();       return (int)cmd.ExecuteScalar();     }     catch (SqlException err)      {       throw new ApplicationException("Data error.");     }     finally      {       con.Close();           }   } }