/// <summary>
 /// Gets the column labels for the result set.
 /// </summary>
 /// <param name="resultSet">The result set to get the column labels for.
 /// </param>
 /// <returns>The string array of column labels.</returns>
 public static String[] GetColumnLabels(ResultSet resultSet)
 {
     List<string> columnLabels = new List<string>();
       foreach (ColumnType column in resultSet.columnTypes) {
     columnLabels.Add(column.labelName);
       }
       return columnLabels.ToArray();
 }
 /// <summary>
 /// Gets the result set as list of string arrays.
 /// </summary>
 /// <param param name="resultSet">The result set to convert to a string array list.</param>
 /// <returns>A list of string arrays representing the result set.</returns>
 public static List<String[]> ResultSetToStringArrayList(ResultSet resultSet) {
   List<string[]> stringArrayList = new List<string[]>();
   stringArrayList.Add(GetColumnLabels(resultSet));
   if (resultSet.rows != null) {
     foreach (Row row in resultSet.rows) {
       stringArrayList.Add(GetRowStringValues(row));
     }
   }
   return stringArrayList;
 }
    /// <summary>
    /// Gets the result set as a table represenation in the form of:
    ///
    /// <pre>
    /// +-------+-------+-------+
    /// |column1|column2|column3|
    /// +-------+-------+-------+
    /// |value1 |value2 |value3 |
    /// +-------+-------+-------+
    /// |value1 |value2 |value3 |
    /// +-------+-------+-------+
    /// </pre>
    /// </summary>
    /// <param name="resultSet">The result set to display as a string</param>
    /// <returns>The string represenation of result set as a table.</returns>
    public static String ResultSetToString(ResultSet resultSet) {
      StringBuilder resultSetStringBuilder = new StringBuilder();
      List<String[]> resultSetStringArrayList = ResultSetToStringArrayList(resultSet);
      List<int> maxColumnSizes = GetMaxColumnSizes(resultSetStringArrayList);
      string rowTemplate = CreateRowTemplate(maxColumnSizes);
      string rowSeparator = CreateRowSeperator(maxColumnSizes);

      resultSetStringBuilder.Append(rowSeparator);
      for (int i = 0; i < resultSetStringArrayList.Count; i++) {
        resultSetStringBuilder.AppendFormat(rowTemplate, (object[]) resultSetStringArrayList[i]).
            Append(rowSeparator);
      }
      return resultSetStringBuilder.ToString();
    }