Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <p><asp:Label ID="Label1" runat="server" Text="Enter First Name"></asp:Label> <asp:TextBox ID="txtFirstName" runat="server"></asp:TextBox> </p> <p><asp:Label ID="Label2" runat="server" Text="Enter Last Name"></asp:Label> <asp:TextBox ID="txtLastName" runat="server"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Last Name is required" ControlToValidate="txtLastName" Display="None" ForeColor="Red"></asp:RequiredFieldValidator> </p> <p><asp:Label ID="Label3" runat="server" Text="Enter Street"></asp:Label> <asp:TextBox ID="txtStreet" runat="server"></asp:TextBox> </p> <p><asp:Label ID="Label4" runat="server" Text="Enter City"></asp:Label> <asp:TextBox ID="txtCity" runat="server"></asp:TextBox> </p> <p><asp:Label ID="Label5" runat="server" Text="Enter State"></asp:Label> <asp:TextBox ID="txtState" runat="server"></asp:TextBox> </p> <p><asp:Label ID="Label6" runat="server" Text="Enter Zip Code"></asp:Label> <asp:TextBox ID="txtZipCode" runat="server"></asp:TextBox> <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="txtZipCode" Display="None" ErrorMessage="invalid zip code" ForeColor="Red" ValidationExpression="\d{5}(-\d{4})?"> </asp:RegularExpressionValidator> </p> <p><asp:Label ID="Label7" runat="server" Text="Enter home Phone"></asp:Label> <asp:TextBox ID="txtHomePhone" runat="server"></asp:TextBox></p> <p><asp:Label ID="Label8" runat="server" Text="Enter Email"></asp:Label> <asp:TextBox ID="txtEmail" runat="server"></asp:TextBox> </p> <p><asp:Label ID="Label9" runat="server" Text="Enter DonationAmount"></asp:Label> <asp:TextBox ID="txtDonation" r unat="server"></asp:TextBox> <asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="txtDonation" ErrorMessage="Be sure to enter a numeric value" Operator="DataTypeCheck" Type="Double"></asp:CompareValidator> </p> <asp:Button ID="btnSubmit" runat="server" Text="Submit" onclick="btnSubmit_Click" /> <asp:Label ID="lblResult" runat="server" Text="Label"></asp:Label> </div> <asp:ValidationSummary ID="ValidationSummary1" runat="server" ForeColor="Red" /> </form> </body> </html>
Default.aspx
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void btnSubmit_Click(object sender, EventArgs e) { //this method writes all the values from the text field //to the Donor class //it is in a try catch to catch errors, though you //should try to prevent errors by validating fields try { Donor d = new Donor(); d.FirstName = txtFirstName.Text; d.LastName = txtLastName.Text; d.Street = txtStreet.Text; d.City = txtCity.Text; d.State = txtState.Text; d.ZipCode = txtZipCode.Text; d.HomePhone = txtHomePhone.Text; d.Email = txtEmail.Text; d.DonationAmount = double.Parse(txtDonation.Text); DonationManager dm = new DonationManager(d); lblResult.Text = "Your donation has been Processed"; //Exception exc = new Exception("This is a new Error"); // throw exc; } catch (Exception ex) { //this puts the error in a session and //redirects us to the error page Session["err"] = ex; Response.Redirect("error.aspx"); } } }
Donor.cs,/p>
using System; using System.Collections.Generic; using System.Linq; using System.Web; ////// this class just stores all the values /// related to the donor and donation /// public class Donor { private string lastName; public string LastName { get { return lastName; } set { lastName = value; } } private string firstName; public string FirstName { get { return firstName; } set { firstName = value; } } private string street; public string Street { get { return street; } set { street = value; } } private string city; public string City { get { return city; } set { city = value; } } private string state; public string State { get { return state; } set { //if (state.Length > 2) //{ // Exception e = new Exception("Must use 2 letter abreviation"); // throw e; //} state = value; } } private string zipCode; public string ZipCode { get { return zipCode; } set { zipCode = value; } } private string homePhone; public string HomePhone { get { return homePhone; } set { homePhone = value; } } private string email; public string Email { get { return email; } set { email = value; } } private double donationAmount; public double DonationAmount { get { return donationAmount; } set { donationAmount = value; } } public Donor() { } }
DonorManager.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data; using System.Data.SqlClient; using System.Configuration; ////// this is the complex class. It uses ADO to write the /// donation information to several different database /// tables /// public class DonationManager { //declare the connection and donor //at class scope SqlConnection connect; Donor donor; public DonationManager(Donor d) { //in the constructor instantiate the connection //assign the donor to the local variable //and call the WriteDonor() method //the actual connection string is in the //web.config file connect = new SqlConnection(ConfigurationManager.ConnectionStrings ["CommunityAssistConnection"].ToString()); donor = d; WriteDonor(); } //Write first and last name to person //get the personkey //write the address information to PersonAddress //write phone number and email to personContact //need write donation to donation private void WriteDonor() { try { connect.Open(); //connect.BeginTransaction(); not working //the following lines call the methods //that configure the sqlCommand for inserts //into each table SqlCommand cmdPerson = WritePerson(); SqlCommand cmdAddress = WriteAddress(); SqlCommand cmdPhone = WriteHomePhone(); SqlCommand cmdEmail = WriteEmail(); SqlCommand cmdDonation = WriteDonation(); //execute the commands cmdPerson.ExecuteNonQuery(); cmdAddress.ExecuteNonQuery(); cmdPhone.ExecuteNonQuery(); cmdEmail.ExecuteNonQuery(); cmdDonation.ExecuteNonQuery(); } catch (Exception ex) { throw ex; } finally { connect.Close(); } } private SqlCommand WritePerson() { //define the sql string string sql="Insert into Person(Lastname, Firstname) Values(@Last, @First)"; //define the command SqlCommand cmd = new SqlCommand(sql, connect); //provide values for the parameters using the values //in the donor class which was passed through the constructor cmd.Parameters.AddWithValue("@Last", donor.LastName); cmd.Parameters.AddWithValue("@First", donor.FirstName); return cmd; } //all the other commands behave as the first one private SqlCommand WriteAddress() { string sql = "Insert into PersonAddress(Street, City, State, Zip, PersonKey)" + " Values(@street, @city, @state, @zip, Ident_Current('Person'))"; SqlCommand cmd = new SqlCommand(sql, connect); cmd.Parameters.AddWithValue("@street", donor.Street); cmd.Parameters.AddWithValue("@city", donor.City); cmd.Parameters.AddWithValue("@state", donor.State); cmd.Parameters.AddWithValue("@zip", donor.ZipCode); return cmd; } private SqlCommand WriteHomePhone() { string sql = "Insert into PersonContact(ContactInfo, ContactTypeKey, PersonKey) " + " Values(@info, 1, Ident_Current('Person'))"; SqlCommand cmd = new SqlCommand(sql, connect); cmd.Parameters.AddWithValue("@info", donor.HomePhone); return cmd; } private SqlCommand WriteEmail() { string sql = "Insert into PersonContact(ContactInfo, ContactTypeKey, PersonKey) " + " Values(@info, 6, Ident_Current('Person'))"; SqlCommand cmd = new SqlCommand(sql, connect); cmd.Parameters.AddWithValue("@info", donor.Email); return cmd; } private SqlCommand WriteDonation() { string sql = "Insert into Donation(DonationDate, DonationAmount, PersonKey, EmployeeKey) " + " Values(GetDate(), @Amount, Ident_Current('Person'), null)"; SqlCommand cmd = new SqlCommand(sql, connect); cmd.Parameters.AddWithValue("@Amount", donor.DonationAmount); return cmd; } }
error.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="error.aspx.cs" Inherits="error" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> </div> </form> </body> </html>
error.aspx.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class error : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //check to see if the session exists if (Session["err"] != null) { //cast the session to the type Exception Exception ex = (Exception)Session["err"]; //view the message Label1.Text = ex.Message; } } }
No comments:
Post a Comment