Адаптеры таблиц SQL / .NET. Как строго вводить вычисляемые столбцы в базе данных или в наборе данных? - PullRequest
2 голосов
/ 27 апреля 2009

Мы используем вычисляемые столбцы в нескольких таблицах SQL Server 2005, которые всегда возвращают данные определенного типа (бит, varchar (50) и т. Д.).

Эти таблицы используются уровнем данных .NET с использованием строго типизированных наборов данных и адаптеров таблиц, однако, поскольку вычисляемые столбцы не ограничены определенным типом (мы всегда возвращаем определенный тип, но мы можем вернуть все) .NET делает не генерировать строго типизированные столбцы.

Три вопроса здесь: - Расчетные столбцы обычно проверяют, имеют ли связанные записи определенные значения, или возвращают одно значение из соответствующего XML-документа с использованием XPath. Являются ли вычисляемые столбцы подходящим инструментом для этого или есть лучший способ вернуть эти связанные фрагменты данных?

  • Мои поиски говорят "нет", но возможно ли строго напечатать эти столбцы в самой базе данных?

  • Есть ли в конструкторе Visual Studio DataSet обходной путь, который позволил бы мне задавать правильные типы и поддерживать их при обновлении DataSet / TableAdapter (поскольку конструктор будет запрашивать базу данных для обновления это схема)?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 27 апреля 2009

В запросах, которые вы используете для возврата этих значений, вы можете использовать функцию SQL CAST () для приведения их к желаемому типу данных. Я считаю, что .NET должен распознать приведенный тип данных и поместить этот тип в набор данных.

1 голос
/ 27 апреля 2009

Во-первых, у них есть тип.

Во-вторых, SQL Server сообщит клиентам тип, если клиент запрашивает его, является ли он клиентом C API, клиентом C #, клиентом JDBC и т. Д. В противном случае клиенты не могут правильно определить тип.

В-третьих, вы можете узнать, какого типа они имеют, посмотрев строку information_schema.columns (или syscolumns) для вычисляемых столбцов.

В-четвертых, вы можете использовать оператор CAST для приведения этих столбцов к любому типу, совместимому с их фактическими типами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...