private void AlterTable(string tableName) { var tempInstanceFromT = Activator.CreateInstance <T>(); var listOfColumns = tempInstanceFromT.GetType().GetProperties(); var nameOfTable = tempInstanceFromT.GetType().Name; ManipulateQuery manipulateQuery = new ManipulateQuery(); using (OleDbConnection connection = new OleDbConnection(connectionString)) { OleDbCommand command = new OleDbCommand(); command.Connection = connection; connection.Open(); foreach (var currentProperty in listOfColumns) { if (currentProperty.PropertyType.Name == "String") { string queryString = $"ALTER TABLE {nameOfTable} ADD COLUMN {currentProperty.Name} TEXT"; command.CommandText = queryString; command.ExecuteNonQuery(); } else if (currentProperty.PropertyType.Name == "DateTime") { string queryString = $"ALTER TABLE {nameOfTable} ADD COLUMN {currentProperty.Name} DATETIME"; command.CommandText = queryString; command.ExecuteNonQuery(); } else if (currentProperty.PropertyType.Name == "Int32") { string queryString = $"ALTER TABLE {nameOfTable} ADD COLUMN {currentProperty.Name} INT"; command.CommandText = queryString; command.ExecuteNonQuery(); } else if (currentProperty.PropertyType.Name == "Single") { string queryString = $"ALTER TABLE {nameOfTable} ADD COLUMN {currentProperty.Name} NUMERIC(18,3)"; command.CommandText = queryString; command.ExecuteNonQuery(); } else if (currentProperty.PropertyType.Name == "TimeSpan") { string queryString = $"ALTER TABLE {nameOfTable} ADD COLUMN {currentProperty.Name} TIME"; command.CommandText = queryString; command.ExecuteNonQuery(); } } } }
private void CreateTable() { string queryString; ManipulateQuery manipulateQuery = new ManipulateQuery(); try { var tempInstanceFromT = Activator.CreateInstance <T>(); var nameOfTable = tempInstanceFromT.GetType().Name; queryString = $"DROP TABLE {nameOfTable} "; manipulateQuery.ExecuteNonQuery(connectionString, queryString); queryString = $"CREATE TABLE {nameOfTable} ( ID AUTOINCREMENT )"; manipulateQuery.ExecuteNonQuery(connectionString, queryString); } catch (Exception) { var tempInstanceFromT = Activator.CreateInstance <T>(); var nameOfTable = tempInstanceFromT.GetType().Name; queryString = $"CREATE TABLE {nameOfTable} ( ID AUTOINCREMENT )"; manipulateQuery.ExecuteNonQuery(connectionString, queryString); } }