Столбец интервала Nullable в DataSet

Вы можете создать компонент, который обернет ваш ul / li. Когда этот компонент реализует интерфейс ControlValueAccessor, он может вести себя как любое другое поле ввода, поддерживая директиву formControlName.

Вы можете следовать этой инструкции .

7
задан Daniel 18 May 2009 в 18:33
поделиться

3 ответа

DBNull в основном использовался для работы с типами значений, не допускающими значения NULL, до .NET 2.0. Из-за дизайна ADO.NET вы не сможете избежать DBNull, если не выберете более прямой подход. DBNull встроен в ядро ​​ADO.NET, поэтому вам придется научиться жить с этим, если вы хотите продолжать его использовать.

Если вы предоставляете свои собственные объекты транспорта данных вместо того, чтобы полагаться на общую Систему .Data, вы можете проверить (при чтении результатов с помощью средства чтения данных), имеет ли значение null, но вам понадобится какой-то способ сгенерировать строго типизированные объекты и сопоставления, потому что это действительно утомительная работа.

В определенной степени насколько мне известно, DBNull встроен в конструкцию ADO.NET, и лучший способ создания приложений, если вы его используете, - это объединить (нормализовать) DBNull и null. В принципе, предоставьте свой собственный класс DbConvert, который перехватывает DBNull и возвращает фактическую нулевую ссылку, если значение равно DBNull. Это минимальное требование, но как только это будет выполнено, у вас будет меньше плавающих значений DBNull, о которых стоит беспокоиться.

3
ответ дан 6 December 2019 в 23:13
поделиться

Прошло некоторое время с тех пор, как я использовал типизированные наборы данных, но в своем старом коде я вижу, что использует атрибут codegen: nullValue . Я не думаю, что он поддерживается дизайнером, по крайней мере, в VS2005 (который я использовал для этого проекта), поэтому вам придется открыть файл xsd в редакторе xml и сделать это вручную.

В результате xml будет выглядеть примерно так:

<xs:sequence>
    <xs:element 
        name="MyIntColumn" 
        codegen:nullValue="0" 
        type="xs:int" 
        minOccurs="0" />
    <xs:element 
        name="MyBoolColumn" 
        codegen:nullValue="false" 
        type="xs:boolean" 
        minOccurs="0" />
    <xs:element 
        name="MyDateColumn" 
        codegen:nullValue="1900-01-01" 
        type="xs:dateTime" 
        minOccurs="0" />
</xs:sequence>
0
ответ дан 6 December 2019 в 23:13
поделиться

Я думаю, что этот пост на форуме ASP.NET поможет решить вопрос: Проблема со строго типизированным набором данных / столбцом, допускающим значение NULL

Единственный способ установить для таких свойств значение null - использовать вспомогательные методы, которые генератор набора данных также создает. Методы названы в честь вашего имя столбца, поэтому в вашем случае вы должны иметь методы в строке данных объект под названием IsApprovingUserNull () и SetApprovingUserNull ().

8
ответ дан 6 December 2019 в 23:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: