Click here to Skip to main content
15,881,938 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.3K   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 JNETTypes
	{
		private int m_RecordNumber;
		private string m_LastUpdated;
		private String m_NETType = "None";
		private String m_CSType;
		private Int32 m_TypeID;

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

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

		//	Constructor from string override
		internal JNETTypes(String nETType)
		{
			JNETTypesUpdater.GetRecord(nETType, this);
		}

		//	String override for main class - must be public
		public override string ToString()
		{
			return this.m_NETType;
		}

		//	Lightweight class for adding to ListView, Combo etc
		//	Contains the Key field and string override
		internal class JNETTypesIndexData
		{
			internal int RecordNumber;
			internal string NETType = "None";

			internal JNETTypesIndexData()
			{
			}

			internal JNETTypesIndexData(JNETTypes nETTypes)
			{
				this.RecordNumber = nETTypes.RecordNumber;
				this.NETType = nETTypes.NETType;
			}

			//	String override for index data - must be public
			public override string ToString()
			{
				return this.NETType;
			}
		}

		#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 String NETType
		{
			get { return this.m_NETType; }
			set { this.m_NETType = value; }
		}

		internal String CSType
		{
			get { return this.m_CSType; }
			set { this.m_CSType = 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 JNETTypesUpdater
	{
		//	AddRecord
		internal static int AddRecord(JNETTypes nETTypes)
		{
			if (JCommon.ProjectDataType == JCommon.ClassDataTypes.ADONET)
				return JNETTypesUDAC.AddRecord(nETTypes);
			else
				return JNETTypesUDSQLite.AddRecord(nETTypes);
		}

		//	Returns all index data in a List
		internal static List<JNETTypes.JNETTypesIndexData> AllIndexData()
		{
			if (JCommon.ProjectDataType == JCommon.ClassDataTypes.ADONET)
				return JNETTypesUDAC.AllIndexData();
			else
				return JNETTypesUDSQLite.AllIndexData();
		}

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

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

		//	DeleteRecord
		internal static bool DeleteRecord(JNETTypes nETTypes)
		{
			if (JCommon.ProjectDataType == JCommon.ClassDataTypes.ADONET)
				return JNETTypesUDAC.DeleteRecord(nETTypes);
			else
				return JNETTypesUDSQLite.DeleteRecord(nETTypes);
		}

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

		//	GetRecord (From Key Field)
		internal static void GetRecord(int recordNumber, JNETTypes nETTypes)
		{
			if (JCommon.ProjectDataType == JCommon.ClassDataTypes.ADONET)
				JNETTypesUDAC.GetRecord(recordNumber, nETTypes);
			else
				JNETTypesUDSQLite.GetRecord(recordNumber, nETTypes);
		}

		//	GetRecord (From string Override)
		internal static void GetRecord(string nETType, JNETTypes nETTypes)
		{
			if (JCommon.ProjectDataType == JCommon.ClassDataTypes.ADONET)
				JNETTypesUDAC.GetRecord(nETType, nETTypes);
			else
				JNETTypesUDSQLite.GetRecord(nETType, nETTypes);
		}

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

		internal static bool UpdateRecord(JNETTypes nETTypes)
		{
			if (JCommon.ProjectDataType == JCommon.ClassDataTypes.ADONET)
				return JNETTypesUDAC.UpdateRecord(nETTypes);
			else
				return JNETTypesUDSQLite.UpdateRecord(nETTypes);
		}

	}


	#endregion



	#region Additional Functions Class


	static class JNETTypesFunctions
	{

		internal static Dictionary<string, int> GetNETTypesDictionary()
		{
			if (JCommon.ProjectDataType == JCommon.ClassDataTypes.ADONET)
				return JNETTypesFunctionsAC.GetNETTypesDictionary();
			else
				return JNETTypesFunctionsSQLite.GetNETTypesDictionary();
		}

		internal static Dictionary<string, int> GetCSTypesDictionary()
		{
			if (JCommon.ProjectDataType == JCommon.ClassDataTypes.ADONET)
				return JNETTypesFunctionsAC.GetCSTypesDictionary();
			else
				return JNETTypesFunctionsSQLite.GetCSTypesDictionary();
		}

		internal static Dictionary<string, int> GetCSTypesDictionaryToUpper()
		{
			if (JCommon.ProjectDataType == JCommon.ClassDataTypes.ADONET)
				return JNETTypesFunctionsAC.GetCSTypesDictionaryToUpper();
			else
				return JNETTypesFunctionsSQLite.GetCSTypesDictionaryToUpper();
		}

	}


	#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