Q:

How can I improve my C# code to read data from MS Access into a 2d-array? 

My C# code below works however it takes close to an hour to process 180,000 rows of data.  I'm looking for ways to improve performance.  Is there a faster or better way to increase the array as new data is read or could the SQL statement be more efficient?  Thanks. 
int row = 0;
string[,] timeSeriesData = new string[row, colSize];
using (OleDbConnection AccessConn = new OleDbConnection(strAccessConn))
{
    OleDbCommand cmdGetData = AccessConn. CreateCommand();
    cmdGetData. CommandText = sqlSELECT;

    AccessConn. Open();
    OleDbDataReader thisReader = cmdGetData. ExecuteReader();
    while (thisReader. Read())
    {
        string[,] tempArray = new string[row + 1, colSize];
        Array. Copy(timeSeriesData, tempArray, timeSeriesData. Length);
        timeSeriesData = tempArray;

        timeSeriesData[row, 0] = thisReader. GetDateTime(0).ToOADate().ToString();
        for (int j = 1; j < colSize; j++)
        {
            if (thisReader. IsDBNull(j))     
            {
                timeSeriesData[row, j] = "-999";  
            }
            else
            {
                timeSeriesData[row, j] = Convert. ToString(thisReader[j]);
            }
         }
         row++;
    }
    thisReader. Close();
    AccessConn. Close();
}

My SQL statement is usually something like this:
SELECT [TimeStamp], IIF([CH1Avg_Qual] IS NULL OR [CH1Avg_Qual]=0, [CH1Avg], NULL) AS Col1, 
IIF([CH2Avg_Qual] IS NULL OR [CH2Avg_Qual]=0, [CH2Avg], NULL) AS Col2, 
IIF([CH3Avg_Qual] IS NULL OR [CH3Avg_Qual]=0, [CH3Avg], NULL) AS Col3, 
IIF([CH7Avg_Qual] IS NULL OR [CH7Avg_Qual]=0, [CH7Avg], NULL) AS Col4, 
IIF([CH9Avg_Qual] IS NULL OR [CH9Avg_Qual]=0, [CH9Avg], NULL) AS Col5, 
IIF([CH10Avg_Qual] IS NULL OR [CH10Avg_Qual]=0, [CH10Avg], NULL) AS Col6, 
IIF([CH11Avg_Qual] IS NULL OR [CH11Avg_Qual]=0, [CH11Avg], NULL) AS Col7 
FROM [DataTable] ORDER BY [TimeStamp]

A:

Thanks to @BobRodes for pointing me towards DataTable.  The code below improved performance on one dataset from 18 min previously to 7 sec using a DataTable :) The code is a lot simpler too. 
DataTable timeSeriesDataDT = new DataTable();
using (OleDbConnection AccessConnDT = new OleDbConnection(strAccessConn))
{
    using (OleDbCommand cmdGetDT = new OleDbCommand(sqlSELECT, AccessConnDT))
    {
        AccessConnDT.Open();
        OleDbDataAdapter adapter = new OleDbDataAdapter(cmdGetDT);
        adapter. Fill(timeSeriesDataDT);
    }
}

