public Boolean DeleteColumn(String colName)
{
bool retVal = false;
int oldFieldCount = _fieldCount;
String columnName = colName.ToLower();
if (!String.IsNullOrEmpty(columnName))
{
if (_dataIndex[columnName] != null)
{
try
{
#region COPY DATA INTO NEW ARRAY, EXCEPT FOR DELETED COLUMN
DatabaseItem[] _dataItemsX;
_dataItemsX = new DatabaseItem[_fieldCount - 1];
_dataIndex.Clear();
int counter = 0;
for (int x = 0; x < _fieldCount; x++)
{
if (_dataItems[x].ColumnName != columnName)
{
_dataItemsX[counter] = new DatabaseItem();
_dataItemsX[counter] = _dataItems[x];
_dataIndex.Add(_dataItemsX[counter].ColumnName, counter);
counter++;
}
}
#endregion
#region RESIZE OLD ARRAY; COPY NEW ARRAY BACK INTO OLD ONE
_fieldCount--;
_dataItems = new DatabaseItem[_fieldCount];
for (int x = 0; x < _fieldCount; x++)
{
_dataItems[x] = new DatabaseItem();
_dataItems[x] = _dataItemsX[x];
}
#endregion
retVal = true;
}
catch
{
_fieldCount = oldFieldCount;
}
}
}
return retVal;
}