2016-12-09 4 views
1

Я пытаюсь получить столбцы, типы данных и размер столбцов выбранной таблицы и базы данных из базы данных SQL Server.Получить размер столбцов вместе с именем столбца и типом данных

До сих пор мне удавалось извлекать имена столбцов и типы данных, но я хочу также получить размер.

Пример: Рассмотрим меня есть 2 колонки в таблицах базы данных SQL Server, как показано ниже:

1) Name nvarchar(30) 
3) Salary decimal(6,2) 

Теперь я могу принести имя и зарплату с nvarchar и salary типов данных, но размер не подходит.

Код:

String[] columnRestrictions = new String[4]; 
columnRestrictions[0] = 'MyDb'; 
columnRestrictions[1] = 'dbo'; 
columnRestrictions[2] = 'Employee'; 
using (SqlConnection con = new SqlConnection("MyConnectionString")) 
{ 
    con.Open(); 
    var columns = con.GetSchema("Columns", columnRestrictions).AsEnumerable() 
     .Select(c => new (c[3].ToString(), c.Field<string>("DATA_TYPE"))).ToList(); 

Результат я получаю, как показано ниже:

Name nvarchar 
Salary decimal 

Ожидаемый результат:

1) Name nvarchar(30) 
3) Salary decimal(6,2) 

Исходный код: Reference

Это possibl e, чтобы получить результат?

ответ

1

вы можете использовать CHARACTER_OCTET_LENGTH для полукокса/VARCHAR и NUMERIC_PRECISION + NUMERIC_SCALE для числовых типов.

+0

Можете ли вы показать мне, как я буду использовать код? –

+0

Исправлено вообще, за исключением char/nvarchar. Я бы предпочел использовать значение столбца 'character_maximum_length'. –

Смежные вопросы