System.Data.SqlClient
имеет то, что вам нужно, без формального запроса к sys.Tables (хотя это то, что он использует в фоновом режиме).Используйте метод GetSchema()
для объекта SqlConnection
и укажите, что вы хотите «Таблицы», и он вернет вам объект DataTable
со строкой для каждой таблицы.Он возвращает имя базы данных, имя схемы таблицы, имя таблицы и тип таблицы в каждой строке (в том порядке столбцов).Код будет выглядеть так:
public static List<string> GetTables(string connectionString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
DataTable schema = connection.GetSchema("Tables");
List<string> TableNames = new List<string>();
foreach (DataRow row in schema.Rows)
{
TableNames.Add(row[2].ToString());
}
return TableNames;
}
}