Skip to content

Instantly share code, notes, and snippets.

@owlscatcher
Created February 26, 2020 11:06
Show Gist options
  • Save owlscatcher/360e0ebde1dbbef040f27c176bb29a98 to your computer and use it in GitHub Desktop.
Save owlscatcher/360e0ebde1dbbef040f27c176bb29a98 to your computer and use it in GitHub Desktop.
using System;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Finding SQL servers...\n");
//get sql-servers name
DataTable dataBaseTable = SqlDataSourceEnumerator.Instance.GetDataSources();
var i = 0;
foreach(DataRow dataRow in dataBaseTable.Rows)
{
Console.WriteLine((i++) + ". " + dataRow.ItemArray[0] + @"\" + dataRow.ItemArray[1]);
}
Console.Write("\nSelect server id: ");
var serverName = Convert.ToInt32(Console.ReadLine());
Console.Write("Input user name: ");
var serverUser = Convert.ToString(Console.ReadLine());
Console.Write("Input password: ");
var serverPass = Convert.ToString(Console.ReadLine());
string connectionString;
if (serverUser != "" || serverPass != "")
{
connectionString = @"Server=" + dataBaseTable.Rows[serverName][0] +
@"\" +
dataBaseTable.Rows[serverName][1] +
"; User Id=" + serverUser +
"; Password=" + serverPass + "";
}
else
{
connectionString = @"Server=" + dataBaseTable.Rows[serverName][0] +
@"\" +
dataBaseTable.Rows[serverName][1] +
"; Trusted_Connection=True";
}
var connection = new SqlConnection(connectionString);
connection.Open();
//get databases name
Console.WriteLine("\nDatabases in selected SQL Server:");
DataTable schemaDatabases = connection.GetSchema("Databases");
i = 0;
foreach(DataRow schemaRow in schemaDatabases.Rows)
{
Console.WriteLine((i++) + ". " + schemaRow.ItemArray[0]);
}
connection.Close();
Console.Write("\nSelect database id: ");
var databseName = Convert.ToInt32(Console.ReadLine());
if (serverUser != "" || serverPass != "")
{
connectionString = @"Server=" + dataBaseTable.Rows[serverName][0] +
@"\" +
dataBaseTable.Rows[serverName][1] +
";Database=" + schemaDatabases.Rows[databseName][0] +
"; User Id=" + serverUser +
"; Password=" + serverPass + "";
}
else
{
connectionString = @"Server=" + dataBaseTable.Rows[serverName][0] +
@"\" +
dataBaseTable.Rows[serverName][1] +
"; Database=" + schemaDatabases.Rows[databseName][0] +
"; Trusted_Connection=True";
}
connection = new SqlConnection(connectionString);
connection.Open();
//get tables name
DataTable schemaTables = connection.GetSchema("Tables");
i = 0;
Console.WriteLine("\nTables in " + schemaDatabases.Rows[databseName][0] + ":");
foreach (DataRow schemaRow in schemaTables.Rows)
{
Console.WriteLine((i++) + ". " + schemaRow.ItemArray[2]);
}
connection.Close();
Console.ReadLine();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment