public void ExtractAndWriteData()
        {
            for (int i = 0; i < tableList.Length; i++)
            {
                if (this.ProcessingTableData != null)
                {
                    this.ProcessingTableData(null, new ProcessingTableDataEventArgs(tableList[i], "Getting Column and Key Information", false));
                }

                ColumnInfo[] columnNamesWithTypes = InfoHelper.GetColumnNamesWithTypes(tableList[i], connData);
                int          originalCols         = columnNamesWithTypes.Length;
                string[]     pkName = InfoHelper.GetPrimaryKeyColumns(tableList[i], connData);
                SqlCommand   cmd    = BuildCommand(tableList[i], pkName, ref columnNamesWithTypes);

                string command = cmd.CommandText;
                if (originalCols != columnNamesWithTypes.Length)
                {
                    command += "\r\n--NOTE: Binary column types excluded";
                }

                string header = String.Format(PopulateHelper.scriptHeader,
                                              DateTime.Now.ToString(),
                                              tableList[i],
                                              command,
                                              this.connData.SQLServerName,
                                              this.connData.DatabaseName,
                                              String.Join(",", pkName),
                                              System.Environment.UserName);

                WriteData(tableList[i], cmd, columnNamesWithTypes, header);
            }
            if (this.ProcessingTableData != null)
            {
                this.ProcessingTableData(null, new ProcessingTableDataEventArgs("", "", true));
            }
        }