Created
February 26, 2020 11:06
-
-
Save owlscatcher/360e0ebde1dbbef040f27c176bb29a98 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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