/// <summary> /// Converts the specified TableMetadata's fields into a DataTable. /// </summary> /// <param name="data">TableMetadata array from which the conversion is made</param> /// <param name="fields">List of fields to be included</param> /// <returns>Resulting DataTable</returns> public DataTable ConvertToDataTable(TableMetadata[] data, params DatabaseField[] fields) { DataTable table = new DataTable(); DataFactory factory = new DataFactory(); for (int i = 0; i < fields.Length; i++) { DataColumn column = new DataColumn(fields[i].fieldName, factory.InitializeDataType(fields[i].fieldType)); column.AutoIncrement = fields[i].isValueAutogenerated; column.AllowDBNull = true; table.Columns.Add(column); } for (int i = 0; i < data.Length; i++) { DataRow drow = table.NewRow(); for (int j = 0; j < fields.Length; j++) { drow[j] = data[i].TableFields[j].fieldValue; } table.Rows.Add(drow); } return(table); }