Skip to content

Instantly share code, notes, and snippets.

@leftler
Created August 19, 2014 21:13
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save leftler/3b4e9b76c869c34f7f52 to your computer and use it in GitHub Desktop.
Save leftler/3b4e9b76c869c34f7f52 to your computer and use it in GitHub Desktop.
Fancy Tables
/* Example output:
Querying Servers...
╔═════════════════╤═════════════════╤═════════════════╤═════════════════╗
║ServerName │InstanceName │IsClustered │Version ║
╠═════════════════╪═════════════════╪═════════════════╪═════════════════╣
║Example 1 │DARWIN_LOCAL_DB │No │9.00.3042.00 ║
║Example 2 │SQL2012 │No │11.0.3000.0 ║
╚═════════════════╧═════════════════╧═════════════════╧═════════════════╝
*/
using System;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
try
{
Console.WriteLine("Querying Servers...");
var sources = System.Data.Sql.SqlDataSourceEnumerator.Instance.GetDataSources();
Console.WindowWidth = sources.Columns.Count * 18 + 2;
Console.BufferWidth = sources.Columns.Count * 18 + 2;
//Seperator
Console.Write('╔');
for (int i = 0; i < sources.Columns.Count; i++)
{
Console.Write("{0}", new String('═', 17));
if (i == sources.Columns.Count - 1)
Console.Write('╗');
else
Console.Write('╤');
}
Console.WriteLine();
//Header
Console.Write('║');
for (int i = 0; i < sources.Columns.Count; i++)
{
Console.Write("{0,-17}", sources.Columns[i].ColumnName);
if (i == sources.Columns.Count - 1)
Console.Write('║');
else
Console.Write('│');
}
Console.WriteLine();
//Seperator
Console.Write('╠');
for (int i = 0; i < sources.Columns.Count; i++)
{
Console.Write("{0}", new String('═', 17));
if (i == sources.Columns.Count - 1)
Console.Write('╣');
else
Console.Write('╪');
}
Console.WriteLine();
//LineItems
for (int i = 0; i < sources.Rows.Count; i++)
{
Console.Write('║');
for (int j = 0; j < sources.Rows[i].ItemArray.Length; j++)
{
Console.Write("{0,-17}", sources.Rows[i][j]);
if (j == sources.Columns.Count - 1)
Console.Write('║');
else
Console.Write('│');
}
Console.WriteLine();
}
//Footer
Console.Write('╚');
for (int i = 0; i < sources.Columns.Count; i++)
{
Console.Write("{0}", new String('═', 17));
if (i == sources.Columns.Count - 1)
Console.Write('╝');
else
Console.Write('╧');
}
}
catch (Exception e)
{
Console.WriteLine();
Console.WriteLine(e.ToString());
}
Console.ReadLine();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment