Results 1 to 10 of 10

Thread: Examples of OOP in practice ??

  1. #1

    Thread Starter
    Fanatic Member venerable bede's Avatar
    Join Date
    Sep 2002
    Location
    The mystic land of Geordies
    Posts
    1,018

    Examples of OOP in practice ??

    I am trying to get to grips with OOP using vb/asp.net and was wondering if anyone knows where I can get a hold of a simple project which makes use of the following :

    Has some kind of dataclass which handles all database operations.

    Some kind of business class which inherits from the above.

    All it has to do is maybe write a record and read/search/update a record. I dont need some giant solution, just a simple example so I can pick up some of the required techniques.

    I am sick of writing hacky code and want to be a code warrior hero.



    p.s - I Luv U

  2. #2
    Frenzied Member Magiaus's Avatar
    Join Date
    Mar 2002
    Location
    swamp land
    Posts
    1,267

    base dataclass

    Code:
    	/// <summary>
    	/// Summary description for SqlObject.
    	/// </summary>
    	[System.Serializable]
    	public abstract class SqlObject
    	{
    		public abstract void Delete();
    		/// <summary>
    		/// Load a serialization file saved with the Save(file) method.
    		/// </summary>
    		/// <param name="file">Full file path and file name of the serialization file to load from.</param>
    		/// <returns>An object to be cast to the correct type.</returns>
    		public object Load(string file)
    		{
    			object o = null;
    			System.IO.FileStream  fs;
    			System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf;
    
    			if(!System.IO.File.Exists(file))
    			{
    				fs = System.IO.File.Open(file, System.IO.FileMode.Open);
    				bf = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
    			
    				o = bf.Deserialize(fs);
    				fs.Close();
    			}
    			return o;
    		}
    		public abstract void Save();
    		/// <summary>
    		/// Save a serialzation file.
    		/// </summary>
    		/// <param name="file">The full path and file name of the file to serialize to.</param>
    		public void Save(string file)
    		{
    			System.IO.FileStream fs;
    			System.Runtime.Serialization.Formatters.Binary.BinaryFormatter  bf;
    			if(!System.IO.File.Exists(file))
    			{
    				fs = System.IO.File.Create(file);
    				bf = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
    
    				bf.Serialize(fs, this);
    				fs.Close();
    			}
    			else
    			{
    				fs = System.IO.File.Open(file, System.IO.FileMode.Truncate);
    				bf = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
    
    				bf.Serialize(fs, this);
    				fs.Close();
    			}
    		}
    		internal string ConnectionString
    		{
    			get{return SqlObject.ConnSTR();}
    		}
    		internal static string ConnSTR()
    		{
    			return Helpers.Common.ResourceString("PKPromo.Data.Base.ConnStr");
    		}	
    	}
    Magiaus

    If I helped give me some points.

  3. #3
    Frenzied Member Magiaus's Avatar
    Join Date
    Mar 2002
    Location
    swamp land
    Posts
    1,267

    SQL Server Data Helper A

    Code:
    		#region ToDataSet
    		/// <summary></summary>
    		public static System.Data.DataSet ToDataSet(string procedure, string connection_string)
    		{
    			System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(connection_string);
    			System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(procedure, conn);
    			System.Data.SqlClient.SqlDataAdapter adapter = new System.Data.SqlClient.SqlDataAdapter(cmd);
    			System.Data.DataSet ret = new System.Data.DataSet();
    
    			cmd.CommandType = System.Data.CommandType.StoredProcedure;
    			conn.Open();
    
    			adapter.Fill(ret);
    
    			conn.Close();
    			cmd.Dispose();
    			conn.Dispose();
    			adapter.Dispose();
    
    			return ret;
    		}
    		/// <summary></summary>
    		public static System.Data.DataSet ToDataSet(string procedure, System.Data.SqlClient.SqlParameter param, string connection_string)
    		{
    			System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(connection_string);
    			System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(procedure, conn);
    			System.Data.SqlClient.SqlDataAdapter adapter = new System.Data.SqlClient.SqlDataAdapter(cmd);
    			System.Data.DataSet ret = new System.Data.DataSet();
    
    			cmd.CommandType = System.Data.CommandType.StoredProcedure;
    			cmd.Parameters.Add(param);
    			conn.Open();
    
    			adapter.Fill(ret);
    
    			conn.Close();
    			cmd.Dispose();
    			conn.Dispose();
    			adapter.Dispose();
    
    			return ret;
    		}
    		/// <summary></summary>
    		public static System.Data.DataSet ToDataSet(string procedure,System.Data.SqlClient.SqlParameter[] param, string connection_string)
    		{
    			System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(connection_string);
    			System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(procedure, conn);
    			System.Data.SqlClient.SqlDataAdapter adapter = new System.Data.SqlClient.SqlDataAdapter(cmd);
    			System.Data.DataSet ret = new System.Data.DataSet();
    
    			cmd.CommandType = System.Data.CommandType.StoredProcedure;
    			for(int i = 0; i < param.Length; i++)
    			{
    				cmd.Parameters.Add(param[i]);
    			}
    
    			conn.Open();
    			adapter.Fill(ret);
    
    			conn.Close();
    			cmd.Dispose();
    			conn.Dispose();
    			adapter.Dispose();
    
    			return ret;
    		}
    		#endregion
    		#region ToDataTable
    		/// <summary></summary>
    		public static System.Data.DataTable ToDataTable(string procedure, string connection_string)
    		{
    			System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(connection_string);
    			System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(procedure, conn);
    			System.Data.SqlClient.SqlDataAdapter adapter = new System.Data.SqlClient.SqlDataAdapter(cmd);
    			System.Data.DataTable ret = new System.Data.DataTable();
    
    			cmd.CommandType = System.Data.CommandType.StoredProcedure;
    			conn.Open();
    
    			adapter.Fill(ret);
    
    			conn.Close();
    			cmd.Dispose();
    			conn.Dispose();
    			adapter.Dispose();
    
    			return ret;
    		}
    		/// <summary></summary>
    		public static System.Data.DataTable ToDataTable(string procedure, System.Data.SqlClient.SqlParameter param, string connection_string)
    		{
    			System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(connection_string);
    			System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(procedure, conn);
    			System.Data.SqlClient.SqlDataAdapter adapter = new System.Data.SqlClient.SqlDataAdapter(cmd);
    			System.Data.DataTable ret = new System.Data.DataTable();
    
    			cmd.CommandType = System.Data.CommandType.StoredProcedure;
    			cmd.Parameters.Add(param);
    			conn.Open();
    
    			adapter.Fill(ret);
    
    			conn.Close();
    			cmd.Dispose();
    			conn.Dispose();
    			adapter.Dispose();
    
    			return ret;
    		}
    		/// <summary></summary>
    		public static System.Data.DataTable ToDataTable(string procedure,System.Data.SqlClient.SqlParameter[] param, string connection_string)
    		{
    			System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(connection_string);
    			System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(procedure, conn);
    			System.Data.SqlClient.SqlDataAdapter adapter = new System.Data.SqlClient.SqlDataAdapter(cmd);
    			System.Data.DataTable ret = new System.Data.DataTable();
    
    			cmd.CommandType = System.Data.CommandType.StoredProcedure;
    			for(int i = 0; i < param.Length; i++)
    			{
    				cmd.Parameters.Add(param[i]);
    			}
    
    			conn.Open();
    			adapter.Fill(ret);
    
    			conn.Close();
    			cmd.Dispose();
    			conn.Dispose();
    			adapter.Dispose();
    
    			return ret;
    		}
    		#endregion
    Magiaus

    If I helped give me some points.

  4. #4
    Frenzied Member Magiaus's Avatar
    Join Date
    Mar 2002
    Location
    swamp land
    Posts
    1,267

    SQL Server Data Helper B

    Code:
    #region ToDataReader
    		/// <summary></summary>
    		public static System.Data.SqlClient.SqlDataReader ToDataReader(string procedure, string connection_string)
    		{
    			System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(connection_string);
    			System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(procedure, conn);
    			System.Data.SqlClient.SqlDataReader ret = null;
    
    			cmd.CommandType = System.Data.CommandType.StoredProcedure;
    			conn.Open();
    
    			ret = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
    
    			cmd.Dispose();
    //			conn.Close();
    //			conn.Dispose();
    			return ret;
    		}
    		/// <summary></summary>
    		public static System.Data.SqlClient.SqlDataReader ToDataReader(string procedure, System.Data.SqlClient.SqlParameter param, string connection_string)
    		{
    			System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(connection_string);
    			System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(procedure, conn);
    			System.Data.SqlClient.SqlDataReader ret = null;
    
    			cmd.CommandType = System.Data.CommandType.StoredProcedure;
    			cmd.Parameters.Add(param);
    			conn.Open();
    
    			ret = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
    		
    			cmd.Dispose();
    //			conn.Close();
    //			conn.Dispose();
    			return ret;
    		}
    		/// <summary></summary>
    		public static System.Data.SqlClient.SqlDataReader ToDataReader(string procedure,System.Data.SqlClient.SqlParameter[] param, string connection_string)
    		{
    			System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(connection_string);
    			System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(procedure, conn);
    			System.Data.SqlClient.SqlDataReader ret = null;
    
    
    			cmd.CommandType = System.Data.CommandType.StoredProcedure;
    			for(int i = 0; i < param.Length; i++)
    			{
    				cmd.Parameters.Add(param[i]);
    			}
    
    			conn.Open();
    			ret = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
    
    			cmd.Dispose();
    //			conn.Close();
    //			conn.Dispose();
    			return ret;
    		}
    		#endregion
    		/// <summary></summary>
    		public static object ExecuteScalar(string procedure, string connection_string)
    		{
    			System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(connection_string);
    			System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(procedure, conn);
    			object ret = null;
    
    
    			cmd.CommandType = System.Data.CommandType.StoredProcedure;
    
    			conn.Open();
    			ret = cmd.ExecuteScalar();
    
    			conn.Close();
    			cmd.Dispose();
    			conn.Dispose();
    			return ret;
    		}
    		/// <summary></summary>
    		public static object ExecuteScalar(string procedure, System.Data.SqlClient.SqlParameter param, string connection_string)
    		{
    			System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(connection_string);
    			System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(procedure, conn);
    			object ret = null;
    
    
    			cmd.CommandType = System.Data.CommandType.StoredProcedure;
    			cmd.Parameters.Add(param);
    
    			conn.Open();
    			ret = cmd.ExecuteScalar();
    
    			conn.Close();
    			cmd.Dispose();
    			conn.Dispose();
    			return ret;
    		}
    		/// <summary></summary>
    		public static object ExecuteScalar(string procedure, System.Data.SqlClient.SqlParameter[] param, string connection_string)
    		{
    			System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(connection_string);
    			System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(procedure, conn);
    			object ret = null;
    
    
    			cmd.CommandType = System.Data.CommandType.StoredProcedure;
    			for(int i = 0; i < param.Length; i++)
    			{
    				cmd.Parameters.Add(param[i]);
    			}
    
    			conn.Open();
    			ret = cmd.ExecuteScalar();
    
    			conn.Close();
    			cmd.Dispose();
    			conn.Dispose();
    			return ret;
    		}
    		/// <summary></summary>
    		public static int ExecuteNonQuery(string procedure, string connection_string)
    		{
    			System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(connection_string);
    			System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(procedure, conn);
    			int ret = 0;
    
    
    			cmd.CommandType = System.Data.CommandType.StoredProcedure;
    
    			conn.Open();
    			ret = cmd.ExecuteNonQuery();
    
    			conn.Close();
    			cmd.Dispose();
    			conn.Dispose();
    			return ret;
    		}
    		/// <summary></summary>
    		public static int ExecuteNonQuery(string procedure, System.Data.SqlClient.SqlParameter param, string connection_string)
    		{
    			System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(connection_string);
    			System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(procedure, conn);
    			int ret = 0;
    
    
    			cmd.CommandType = System.Data.CommandType.StoredProcedure;
    			cmd.Parameters.Add(param);
    
    			conn.Open();
    			ret = cmd.ExecuteNonQuery();
    
    			conn.Close();
    			cmd.Dispose();
    			conn.Dispose();
    			return ret;
    		}
    		/// <summary></summary>
    		public static int ExecuteNonQuery(string procedure, System.Data.SqlClient.SqlParameter[] param, string connection_string)
    		{
    			System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(connection_string);
    			System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(procedure, conn);
    			int ret = 0;
    
    
    			cmd.CommandType = System.Data.CommandType.StoredProcedure;
    			for(int i = 0; i < param.Length; i++)
    			{
    				cmd.Parameters.Add(param[i]);
    			}
    
    			conn.Open();
    			ret = cmd.ExecuteNonQuery();
    
    			conn.Close();
    			cmd.Dispose();
    			conn.Dispose();
    			return ret;
    		}
    	}
    Magiaus

    If I helped give me some points.

  5. #5
    Frenzied Member Magiaus's Avatar
    Join Date
    Mar 2002
    Location
    swamp land
    Posts
    1,267
    there are an A & B cause it's cut in half
    Magiaus

    If I helped give me some points.

  6. #6
    Frenzied Member Magiaus's Avatar
    Join Date
    Mar 2002
    Location
    swamp land
    Posts
    1,267

    a class using those classes

    Code:
    /// <summary>
    	/// PK Promotions base product/widget/thing-ah-mah-jig.
    	/// </summary>
    	public class Product : Base.SqlObject
    	{
    		#region Constructors
    		/// <summary>
    		/// Create a new empty Product. This product will not exist in SQL Server until saved.
    		/// </summary>
    		public Product(){}
    		public Product(System.Guid key)
    		{
    			if(key != System.Guid.Empty)
    			{
    				System.Data.SqlClient.SqlDataReader r = Helpers.SqlProcedure.ToDataReader
    					("Products_GetProductByProductGuid", 
    					new System.Data.SqlClient.SqlParameter("@ProductGuid", key),
    					ConnectionString);
    				if(r.Read())
    				{
    					_key = key;
    					_name = r["ProductName"].ToString().Trim();
    					_description = r["ProductDescription"].ToString().Trim();
    					_phase = new ProductPhase(new System.Guid(r["ProductPhaseGuid"].ToString().Trim()));
    				}
    				r.Close();
    			}
    		}
    		#endregion
    		#region Data Members
    		/// <summary>
    		/// This method deletes this product and all it's related data from SQL Server.
    		/// Note: This method will cascade the deletion of all related product information.
    		/// Information will be delted across all tables on which ProductGuid has
    		///  a PRIMARY KEY relation. Don't call it unless you mean it.
    		/// </summary>
    		public override void Delete()
    		{
    			if(_key == System.Guid.Empty){return;}
    			Helpers.SqlProcedure.ExecuteNonQuery
    				("Products_DelProductByProductGuid",
    				new System.Data.SqlClient.SqlParameter("@ProductGuid", _key),
    				ConnectionString);
    		}
    		/// <summary>
    		/// Save the information for this product to SQLServer.
    		/// Note: This method does not alter any tables 
    		/// except the Products table.
    		/// </summary>
    		public override void Save()
    		{
    			if(_phase.Key == System.Guid.Empty)
    			{//set idle
    
    			}
    			if(_key != System.Guid.Empty)
    			{	//update
    				Helpers.SqlProcedure.ExecuteNonQuery
    					("Products_SetProductByProductGuid",
    					new System.Data.SqlClient.SqlParameter[]{
    																new System.Data.SqlClient.SqlParameter("@ProductGuid", _key),
    																new System.Data.SqlClient.SqlParameter("@ProductPhaseGuid", _phase.Key),
    																new System.Data.SqlClient.SqlParameter("@ProductName", _name),
    																new System.Data.SqlClient.SqlParameter("@ProductDescription", _description)},
    					ConnectionString);
    			}
    			else
    			{	//insert
    				Helpers.SqlProcedure.ExecuteNonQuery
    					("Products_AddProduct",
    					new System.Data.SqlClient.SqlParameter[]{
    																new System.Data.SqlClient.SqlParameter("@ProductPhaseGuid", _phase.Key),
    																new System.Data.SqlClient.SqlParameter("@ProductName", _name),
    																new System.Data.SqlClient.SqlParameter("@ProductDescription", _description)},
    					ConnectionString);
    			}
    		}
    		#endregion
    		#region Properties
    		private System.Guid _key = System.Guid.Empty;
    		/// <summary>
    		/// Products read only PRIMARY KEY.
    		/// This Guid Primary Key is also used as this products
    		/// Product Code.
    		/// </summary>
    		public System.Guid Key
    		{
    			get{return _key;}
    		}
    		private ProductPhase _phase = new ProductPhase();
    		/// <summary>
    		/// The phase the product is currently in.
    		/// </summary>
    		public ProductPhase Phase
    		{
    			get{return _phase;}
    			set{_phase = value;}
    		}
    		/// <summary>
    		/// The read only description of the current phase.
    		/// </summary>
    		public string PhaseDescription
    		{
    			get{return _phase.Description;}
    		}
    		private string _name = "";
    		/// <summary>
    		/// The name used to identifiy this product.
    		/// </summary>
    		public string Name
    		{
    			get{return _name;}
    			set{_name = value;}
    		}
    		private string _description = "";
    		/// <summary>
    		/// A brief description that goes along with the product.
    		/// </summary>
    		public string Description
    		{
    			get{return _description;}
    			set{_description = value;}
    		}
    		#endregion
    		#region Static Members
    		/// <summary>
    		/// Get the total number of products.
    		/// </summary>
    		/// <returns>Integer number of products.</returns>
    		public static int ProductCount()
    		{
    				return (int)Helpers.SqlProcedure.ExecuteScalar
    					("Products_GetProductsCount", 
    					Base.SqlObject.ConnSTR());
    		}
    		/// <summary>
    		/// Get the total number of products in a certian phase.
    		/// </summary>
    		/// <param name="phase_key">The Guid PRIMARY KEY of the product count from.</param>
    		/// <returns>The total number of products in the product phase determined by phase_key.</returns>
    		public static int ProductCount(System.Guid phase_key)
    		{
    				return (int)Helpers.SqlProcedure.ExecuteScalar
    					("Products_GetProductsCountByProductPhaseGuid", 
    					new System.Data.SqlClient.SqlParameter("@ProductPhaseGuid", phase_key),
    					Base.SqlObject.ConnSTR());
    		}
    		/// <summary>
    		/// Get a Product by name.
    		/// </summary>
    		/// <param name="name">The name of the product.</param>
    		/// <returns>Product.</returns>
    		public static Product FromName(string name)
    		{
    			return new Product(new System.Guid(Helpers.SqlProcedure.ExecuteScalar
    				("Products_GetProductByProductName",
    				new System.Data.SqlClient.SqlParameter("@ProductName", name),
    				Base.SqlObject.ConnSTR()).ToString()));
    		}
    		#endregion
    	}
    Magiaus

    If I helped give me some points.

  7. #7
    Frenzied Member Magiaus's Avatar
    Join Date
    Mar 2002
    Location
    swamp land
    Posts
    1,267
    no, I don't have any vb code
    Magiaus

    If I helped give me some points.

  8. #8
    Frenzied Member Magiaus's Avatar
    Join Date
    Mar 2002
    Location
    swamp land
    Posts
    1,267
    damn, that's allot of code.....

    sorry, for multi posts......

    see the XML documentation......
    Magiaus

    If I helped give me some points.

  9. #9

    Thread Starter
    Fanatic Member venerable bede's Avatar
    Join Date
    Sep 2002
    Location
    The mystic land of Geordies
    Posts
    1,018
    WOW.

    Shame I don't understand it but I'll give it a go.

  10. #10
    Addicted Member PeteD's Avatar
    Join Date
    Jun 2003
    Location
    Sydney
    Posts
    158

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width