C # - Получить типы полей - PullRequest
       23

C # - Получить типы полей

2 голосов
/ 30 января 2009

В C # 2.0 у меня есть список полей и список значений (хранящихся в виде строк), имя таблицы и соединение ODBC.

Мне нужно получить типы данных полей этой таблицы, поэтому я знаю, как создать свой sql.

Какой лучший способ получить эту информацию из того, что у меня есть?

Моя единственная идея - сделать SELECT TOP 0 * FROM @TableName в адаптере данных, получить обратно набор данных и выполнить итерацию по списку имен полей по столбцам данных в таблице данных.

Есть ли лучший способ сделать это?

Ответы [ 2 ]

4 голосов
/ 30 января 2009

Попробуйте это

select * from sys.columns where object_id = object_id('MyTable')

Надеюсь, это поможет.

2 голосов
/ 30 января 2009

Лучший вариант - запросить системные таблицы баз данных, как упоминал Ник Беради. Если это не вариант по какой-либо причине, вы можете сделать что-то вроде этого:

using (SqlConnection conn = new SqlConnection(myConnectionString))
            {
                using (SqlDataAdapter adapter = new SqlDataAdapter("SELECT * from MyTable", conn))
                {
                    DataTable table = new DataTable();
                    adapter.FillSchema(table, SchemaType.Mapped);
                    //at this point, table will have no rows, but will have all the columns of which you can get their datatypes
                }
            }
...