⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 customer.cs

📁 基于微软的 ASP.NET+C#开发的PETSHOP(网上宠物店)项目,在性能及开发效率上明显优于基于SUN J2EE框架开发的PETSHOP. 项目包括所有源码及数据库建库脚本,是不错的学习 AS
💻 CS
字号:
using System;
using System.Data;
using System.Data.SqlClient;

namespace PetShop.Components {
	/// <summary>
	/// Account management and login verification.
	/// </summary>
	public class Customer {
		/// <summary>
		/// The Login method validates a username/password pair against 
		/// credentials stored in the customers database. If the 
		/// username/password pair is valid, the method returns the 
		/// "CustomerId" number of the customer. Otherwise it will throw 
		/// an exception.
		/// </summary>
		/// <param name="userName">User name of the customer</param>
		/// <param name="password">Customer's password</param>
		/// <returns>If the login was sucessful the user name is returned, 
		/// otherwise null will be returned to the caller.</returns>		
		public string Login(string userName, string password) {
			string customerID;

			// params to stored proc
			Database data = new Database();
			SqlParameter[] prams = {
				data.MakeInParam("@username",    SqlDbType.VarChar, 25, userName),
				data.MakeInParam("@password",    SqlDbType.VarChar, 25, password),
				data.MakeOutParam("@CustomerID", SqlDbType.VarChar, 25)
			};

			// create data object and params
			data.RunProc("upAccountLogin", prams);    // run the stored procedure
			customerID = (string) prams[2].Value;     // get the output param value

			// if the customer id is an empty string, then the login failed
			if (customerID == string.Empty)
				return null;
			else
				return customerID;
		}

		/// <summary>
		/// Creates a new customer account in the database.
		/// </summary>
		/// <param name="userid">Customer ID.</param>
		/// <param name="password">User's password.</param>
		/// <param name="email">Email address.</param>
		/// <param name="firstName">First name.</param>
		/// <param name="lastName">Last name.</param>
		/// <param name="address1">Address line.</param>
		/// <param name="address2">Additional Address line.</param>
		/// <param name="city">City.</param>
		/// <param name="state">Sate.</param>
		/// <param name="zip">Postal code.</param>
		/// <param name="country">Country name.</param>
		/// <param name="phone">Telephone number.</param>
		/// <param name="languagePref">Language perference.</param>
		/// <param name="favoriteCategory">The user's favorite pet category.</param>
		/// <param name="mylistOption">User preference for displaying the pet favorites list.</param>
		/// <param name="bannerOptions">User preference for displaying an ad banner.</param>
		/// <returns>If the account creation was sucessful the user name is 
		/// returned, otherwise null is returned to the caller.</returns>
		public string Add(string userid, string password, string email, string firstName, 
			string lastName, string address1, string address2, 
			string city, string state, string zip, string country, 
			string phone, string languagePref, string favoriteCategory, 
			int mylistOption, int bannerOptions) {		
			// create data object and params
			Database data = new Database();
						
			SqlParameter[] prams = {
				data.MakeInParam("@userid",      SqlDbType.VarChar, 80, userid),
				data.MakeInParam("@password",    SqlDbType.VarChar, 25, password),
				data.MakeInParam("@email",       SqlDbType.VarChar, 80, email),
				data.MakeInParam("@firstname",   SqlDbType.VarChar, 80, firstName),
				data.MakeInParam("@lastname",    SqlDbType.VarChar, 80, lastName),
				data.MakeInParam("@addr1",       SqlDbType.VarChar, 80, address1),
				data.MakeInParam("@addr2",       SqlDbType.VarChar, 80, address2),
				data.MakeInParam("@city",        SqlDbType.VarChar, 80, city),
				data.MakeInParam("@state",       SqlDbType.VarChar, 20, state),
				data.MakeInParam("@zip",         SqlDbType.VarChar, 20, zip),
				data.MakeInParam("@country",     SqlDbType.VarChar, 80, country),
				data.MakeInParam("@phone",       SqlDbType.VarChar, 80, phone),
				data.MakeInParam("@langpref",    SqlDbType.VarChar, 25, languagePref),
				data.MakeInParam("@favcategory", SqlDbType.VarChar, 25, favoriteCategory),
				data.MakeInParam("@mylistopt",   SqlDbType.Int,      4, mylistOption),
				data.MakeInParam("@banneropt",   SqlDbType.Int,      4, bannerOptions)
			};

			try {
				// run the stored procedure and return an ADO.NET DataReader
				int retval = data.RunProc("upAccountAdd", prams);

				// if the customer id is an empty string, then the create failed
				if (retval == 0 ) 
					return userid;
				else 
					return null;
			}
			catch (Exception ex) {
				Error.Log(ex.ToString());
				return null;
			}
		}

		/// <summary>
		/// Updates a customer account in the database.
		/// </summary>
		/// <param name="email">Email address.</param>
		/// <param name="firstName">First name.</param>
		/// <param name="lastName">Last name.</param>
		/// <param name="address1">Address line.</param>
		/// <param name="address2">Additional Address line.</param>
		/// <param name="city">City.</param>
		/// <param name="state">Sate.</param>
		/// <param name="zip">Postal code.</param>
		/// <param name="country">Country name.</param>
		/// <param name="phone">Telephone number.</param>
		/// <param name="languagePref">Language perference.</param>
		/// <param name="favoriteCategory">The user's favorite pet category.</param>
		/// <param name="mylistOption">User preference for displaying the pet favorites list.</param>
		/// <param name="bannerOptions">User preference for displaying an ad banner.</param>
		public void UpdateAccount(string userid, string email, string firstName, 
			string lastName, string address1, string address2, 
			string city, string state, string zip, string country, 
			string phone, string languagePref, string favoriteCategory, 
			int mylistOption, int bannerOptions) {		
			// create data object and params
			Database data = new Database();
			SqlParameter[] prams = {
				data.MakeInParam("@userid",      SqlDbType.VarChar, 80, userid),
				data.MakeInParam("@email",       SqlDbType.VarChar, 80, email),
				data.MakeInParam("@firstname",   SqlDbType.VarChar, 80, firstName),
				data.MakeInParam("@lastname",    SqlDbType.VarChar, 80, lastName),
				data.MakeInParam("@addr1",       SqlDbType.VarChar, 80, address1),
				data.MakeInParam("@addr2",       SqlDbType.VarChar, 80, address2),
				data.MakeInParam("@city",        SqlDbType.VarChar, 80, city),
				data.MakeInParam("@state",       SqlDbType.VarChar, 20, state),
				data.MakeInParam("@zip",         SqlDbType.VarChar, 20, zip),
				data.MakeInParam("@country",     SqlDbType.VarChar, 80, country),
				data.MakeInParam("@phone",       SqlDbType.VarChar, 80, phone),
				data.MakeInParam("@langpref",    SqlDbType.VarChar, 25, languagePref),
				data.MakeInParam("@favcategory", SqlDbType.VarChar, 25, favoriteCategory),
				data.MakeInParam("@mylistopt",   SqlDbType.Int,      4, mylistOption),
				data.MakeInParam("@banneropt",   SqlDbType.Int,      4, bannerOptions)
			};

			// run the stored proc
			try {
				data.RunProc("upAccountUpdate", prams);
			}
			catch (Exception ex) {
				Error.Log(ex.ToString());
			}
		}

		/// <summary>
		/// Gets the customer's account details.
		/// </summary>
		/// <param name="userID">Customer's user id</param>
		/// <returns>CustomerDetails object</returns>
		public CustomerDetails GetDetails(string userID) {
			// create data object and params
			SqlDataReader dataReader = null;
			Database data = new Database();
			SqlParameter[] prams = { data.MakeInParam("@userID", SqlDbType.Char, 80, userID) };
   		
			try {
				// run the stored procedure and return an ADO.NET DataReader
				data.RunProc("upAccountGetDetails", prams, out dataReader);

				CustomerDetails customerDetails = new CustomerDetails();
				
				// populate the customer detail object from the SQL Server Data Reader
				if (dataReader.Read()) {
					customerDetails.userid      = dataReader.GetString(0);
					customerDetails.email       = dataReader.GetString(1);
					customerDetails.firstname   = dataReader.GetString(2);
					customerDetails.lastname    = dataReader.GetString(3);
					customerDetails.status      = dataReader.GetString(4);
					customerDetails.addr1       = dataReader.GetString(5);
					customerDetails.addr2       = dataReader.GetString(6);
					customerDetails.city        = dataReader.GetString(7);
					customerDetails.state       = dataReader.GetString(8);
					customerDetails.zip         = dataReader.GetString(9);
					customerDetails.country     = dataReader.GetString(10);
					customerDetails.phone       = dataReader.GetString(11);
					customerDetails.langpref    = dataReader.GetString(12);
					customerDetails.favcategory = dataReader.GetString(13);
					customerDetails.mylistopt   = dataReader.GetInt32(14);
					customerDetails.banneropt   = dataReader.GetInt32(15);

					dataReader.Close();

					return customerDetails;
				}
				else
					return null;				
			}
			catch (Exception ex) {
				Error.Log(ex.ToString());
				return null;
			}
			finally	{
				dataReader.Close();
			}
		}

		/// <summary>
		/// Gets the customer's address.
		/// </summary>
		/// <param name="userID">Customer's user id.</param>
		/// <returns>ADO.NET SQL Server Data reader.</returns>
		public CustomerAddress GetAddress(string userID) {
			// create data object and params
			SqlDataReader dataReader = null;
			Database data = new Database();
			SqlParameter[] prams = { data.MakeInParam("@userID", SqlDbType.Char, 80, userID) };

			try {
				// run the stored procedure and return an ADO.NET DataReader
				data.RunProc("upAccountGetAddress", prams, out dataReader);

				CustomerAddress customerAddress = new CustomerAddress();
				
				// populate the customer detail object from the SQL Server Data Reader
				if (dataReader.Read()) {
					customerAddress.userid      = userID;
					customerAddress.email       = dataReader.GetString(0);
					customerAddress.firstname   = dataReader.GetString(1);
					customerAddress.lastname    = dataReader.GetString(2);
					customerAddress.status      = dataReader.GetString(3);
					customerAddress.addr1       = dataReader.GetString(4);
					customerAddress.addr2       = dataReader.GetString(5);
					customerAddress.city        = dataReader.GetString(6);
					customerAddress.state       = dataReader.GetString(7);
					customerAddress.zip         = dataReader.GetString(8);					
					customerAddress.country     = dataReader.GetString(9);
					customerAddress.phone       = dataReader.GetString(10);

					dataReader.Close();

					return customerAddress;
				}
				else
					return null;				
			}
			catch (Exception ex) {
				Error.Log(ex.ToString());
				return null;
			}
			finally	{
				dataReader.Close();
			}

		}
		
		/// <summary>
		/// Represents a customer account and profile infromation. The class 
		/// is implemented using public properties to allow for easy Data 
		/// Binding in the presentation tier (in the ASP.NET WebForms).
		/// </summary>
		public class CustomerDetails 
		{
			// private member variables
			private string m_userid;
			private string m_email;
			private string m_firstname;
			private string m_lastname;
			private string m_status;
			private string m_addr1;
			private string m_addr2;
			private string m_city;
			private string m_state;
			private string m_zip;
			private string m_country;
			private string m_phone;
			private string m_langpref;
			private string m_favcategory;
			private int m_mylistopt;
			private int m_banneropt;

			// user name
			public string userid {
				get { return m_userid; }
				set { m_userid = value; }
			}

			public string email {
				get { return m_email; }
				set { m_email = value; }
			}

			// address infromation
			public string firstname {
				get { return m_firstname; }
				set { m_firstname = value; }
			}

			public string lastname {
				get { return m_lastname; }
				set { m_lastname = value; }
			}

			public string status {
				get { return m_status; }
				set { m_status = value; }
			}

			public string addr1 {
				get { return m_addr1; }
				set { m_addr1 = value; }
			}

			public string addr2 {
				get { return m_addr2; }
				set { m_addr2 = value; }
			}

			public string city {
				get { return m_city; }
				set { m_city = value; }
			}

			public string state {
				get { return m_state; }
				set { m_state = value; }
			}

			public string zip {
				get { return m_zip; }
				set { m_zip = value; }
			}

			public string country {
				get { return m_country; }
				set { m_country = value; }
			}

			public string phone {
				get { return m_phone; }
				set { m_phone = value; }
			}

			// profile values
			public string langpref {
				get { return m_langpref; }
				set { m_langpref = value; }
			}

			public string favcategory {
				get { return m_favcategory; }
				set { m_favcategory = value; }
			}

			public int mylistopt {
				get { return m_mylistopt; }
				set { m_mylistopt = value; }
			}

			public int banneropt {
				get { return m_banneropt; }
				set { m_banneropt = value; }
			}
		}

		/// <summary>
		/// Represents a customer address. The class is implemented 
		/// using public properties to allow for easy Data Binding 
		/// in the presentation tier (in the ASP.NET WebForms).
		/// </summary>
		public class CustomerAddress {
			// private member variables
			private string m_userid;
			private string m_email;
			private string m_firstname;
			private string m_lastname;
			private string m_status;
			private string m_addr1;
			private string m_addr2;
			private string m_city;
			private string m_state;
			private string m_zip;
			private string m_country;
			private string m_phone;

			// user name
			public string userid {
				get { return m_userid; }
				set { m_userid = value; }
			}

			public string email {
				get { return m_email; }
				set { m_email = value; }
			}

			// address infromation
			public string firstname {
				get { return m_firstname; }
				set { m_firstname = value; }
			}

			public string lastname {
				get { return m_lastname; }
				set { m_lastname = value; }
			}

			public string status {
				get { return m_status; }
				set { m_status = value; }
			}

			public string addr1 {
				get { return m_addr1; }
				set { m_addr1 = value; }
			}

			public string addr2 {
				get { return m_addr2; }
				set { m_addr2 = value; }
			}

			public string city {
				get { return m_city; }
				set { m_city = value; }
			}

			public string state {
				get { return m_state; }
				set { m_state = value; }
			}

			public string zip {
				get { return m_zip; }
				set { m_zip = value; }
			}

			public string country {
				get { return m_country; }
				set { m_country = value; }
			}

			public string phone {
				get { return m_phone; }
				set { m_phone = value; }
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -