Click here to Skip to main content
15,885,767 members
Articles / Programming Languages / XML

Create Data Classes

Rate me:
Please Sign up or sign in to vote.
4.88/5 (31 votes)
4 Mar 2011CPOL10 min read 135.4K   2.5K   167  
An application that creates a C# class to read/write data to/from an Access, SQLite, or XML database.
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.IO;
using System.Text;
using System.Windows.Forms;

namespace JGCreateDataClasses
{
	internal class JAccessProvider
	{
		private int m_RecordNumber;
		private string m_LastUpdated;
		private Int32 m_PType;
		private String m_ConstantName;
		private Int32 m_TypeID;

		//	Bare constructor
		internal JAccessProvider()
		{
			this.m_RecordNumber = 0;
		}

		//	Constructor from key field number
		internal JAccessProvider(int recordNumber)
		{
			JAccessProviderUpdater.GetRecord(recordNumber, this);
		}

		#region Public Properties


		internal int RecordNumber
		{
			get { return this.m_RecordNumber; }
			set { this.m_RecordNumber = value; }
		}

		internal string LastUpdated
		{
			get { return this.m_LastUpdated; }
			set { this.m_LastUpdated = value; }
		}

		internal Int32 PType
		{
			get { return this.m_PType; }
			set { this.m_PType = value; }
		}

		internal String ConstantName
		{
			get { return this.m_ConstantName; }
			set { this.m_ConstantName = value; }
		}

		internal Int32 TypeID
		{
			get { return this.m_TypeID; }
			set { this.m_TypeID = value; }
		}


		#endregion

		#region Additional Fields

		//	Calculated Fields - NB These are not saved in the database



		#endregion

	}


	#region Updater Class

	//	Steers calls to appropriate updater

	static class JAccessProviderUpdater
	{
		//	AddRecord
		internal static int AddRecord(JAccessProvider accessProvider)
		{
			if (JCommon.ProjectDataType == JCommon.ClassDataTypes.ADONET)
				return JAccessProviderUDAC.AddRecord(accessProvider);
			else
				return JAccessProviderUDSQLite.AddRecord(accessProvider);
		}

		//	Returns all records in a List
		internal static List<JAccessProvider> AllRecords()
		{
			if (JCommon.ProjectDataType == JCommon.ClassDataTypes.ADONET)
				return JAccessProviderUDAC.AllRecords();
			else
				return JAccessProviderUDSQLite.AllRecords();
		}

		//	Returns all records in a List
		internal static List<JAccessProvider> AllRecords(string sortField)
		{
			if (JCommon.ProjectDataType == JCommon.ClassDataTypes.ADONET)
				return JAccessProviderUDAC.AllRecords(sortField);
			else
				return JAccessProviderUDSQLite.AllRecords(sortField);
		}

		//	DeleteRecord
		internal static bool DeleteRecord(JAccessProvider accessProvider)
		{
			if (JCommon.ProjectDataType == JCommon.ClassDataTypes.ADONET)
				return JAccessProviderUDAC.DeleteRecord(accessProvider);
			else
				return JAccessProviderUDSQLite.DeleteRecord(accessProvider);
		}

		//	GetField
		internal static object GetField(int recordNumber, string fieldName)
		{
			if (JCommon.ProjectDataType == JCommon.ClassDataTypes.ADONET)
				return JAccessProviderUDAC.GetField(recordNumber, fieldName);
			else
				return JAccessProviderUDSQLite.GetField(recordNumber, fieldName);
		}

		//	GetRecord (From Key Field)
		internal static void GetRecord(int recordNumber, JAccessProvider accessProvider)
		{
			if (JCommon.ProjectDataType == JCommon.ClassDataTypes.ADONET)
				JAccessProviderUDAC.GetRecord(recordNumber, accessProvider);
			else
				JAccessProviderUDSQLite.GetRecord(recordNumber, accessProvider);
		}

		//	UpdateField
		internal static bool UpdateField(int recordNumber, string fieldName, object value)
		{
			if (JCommon.ProjectDataType == JCommon.ClassDataTypes.ADONET)
				return JAccessProviderUDAC.UpdateField(recordNumber, fieldName, value);
			else
				return JAccessProviderUDSQLite.UpdateField(recordNumber, fieldName, value);
		}

		internal static bool UpdateRecord(JAccessProvider accessProvider)
		{
			if (JCommon.ProjectDataType == JCommon.ClassDataTypes.ADONET)
				return JAccessProviderUDAC.UpdateRecord(accessProvider);
			else
				return JAccessProviderUDSQLite.UpdateRecord(accessProvider);
		}

	}
	#endregion



	#region Additional Functions Class


	static class JAccessProviderFunctions
	{
		internal static JAccessProvider GetRecordByAccessProvider(string accessProvider)
		{
			if (JCommon.ProjectDataType == JCommon.ClassDataTypes.ADONET)
				return JAccessProviderFunctionsAC.GetRecordByAccessProvider(accessProvider);
			else
				return JAccessProviderFunctionsSQlite.GetRecordByAccessProvider(accessProvider);
		}

	}


	#endregion



}


By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Retired
United Kingdom United Kingdom
I have been a keen hobbyist programmer since getting my first computer - a Vic 20 (you had to be able to write programs then since few programs were available and all were expensive).
Retired and now living in Pewsey, Wiltshire, where I spend (far too much of) my time writing computer programs to keep my mind active.

Comments and Discussions