Вы не упоминаете, какую базу данных используете, но я предполагаю, что это SQL Server.
Вот как вы получаете список таблиц:
USE YourDBName
GO
SELECT *
FROM sys.Tables
Вы можете использовать Ado.Net для выполнения запроса или добавить таблицу таблиц в модель данных вашего объекта.
ОБНОВЛЕНО
Вот еще несколько способов. Возможно, вам придется адаптировать их к вашим потребностям.
[dbo]. [Sysobjects] содержит одну строку для каждого объекта, такого как ограничение, таблица, представление, хранимая процедура, функция и т. Д., Созданные в базе данных. Чтобы определить тип объекта, вы запросите столбец [xtype], который содержит тип объекта. Для пользовательских таблиц значение [xtype] равно 'U', что означает пользовательские таблицы.
SELECT [Name] FROM [dbo].[sysobjects]
WHERE [xtype] = 'U'
Второй метод заключается в запросе системного представления [Information_Schema]. [Tables]. Системное представление [Information_Schema]. [Tables] содержит одну строку для каждой таблицы в текущей базе данных, для которой у текущего пользователя есть разрешения. Этот viw основан на системной таблице [dbo]. [Sysobjects]. Системное представление [Information_Schema]. [Tables] также будет включать представления в список. Чтобы отфильтровать только пользовательские таблицы, вы будете выводить только те записи, для которых [Table_Type] равен 'BASE TABLE', как видно из следующего запроса:
SELECT * FROM [Information_Schema].[Tables]
WHERE [Table_Type] = 'BASE TABLE'
Третий метод перечисления пользовательских таблиц в базе данных - использование системной хранимой процедуры sp_tables. Системная хранимая процедура sp_tables возвращает список объектов, которые могут появиться в предложении FROM. Поскольку вас интересуют только пользовательские таблицы, а не системные таблицы или представления, вы должны установить для параметра @table_type значение «TABLE», как видно из следующего запроса:
EXEC sp_tables @table_type = "'TABLE'"