Ошибка в строго типизированном наборе данных в VB.Net - PullRequest
0 голосов
/ 22 декабря 2011

Я нашел причину возникновения этой ошибки, но не знаю исправления.

Я использую Strongly Typed Dataset для моего проекта, который создан как dll для DAL (Data Access Layer)

Я добавил таблицу Sql Server в этот набор данных с помощью дизайнера и создал DataAdapter

This is how the datatable looks

Он отлично работает, когда я вставляю с использованием DataTableAdapter

daLabTest.Insert(txtLabTestId.Text, cmbLabTestType.Text, cmbTestName.Text, txtLabFees.Text, dtpLabEffDate.Value)

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

Error showned in visual Studio

я сказал, что выяснил, в чем проблема,Я только предварительно просмотрел данные с помощью конструктора DataSet и обнаружил, что функция возвращает данные, подобные этой ...

data i got preview

Запрос, который я написал для просмотра этого в наборе данных:

Select distinct(TestType) from LabTestTypes

, поэтому должен возвращаться только один столбец, но набор данных возвращает 5 столбцов, но другие возвращаются как нулевые, а столбец TestName является основным, который не должен быть нулевым при возврате, поэтому проблема существует ..

Чтобы решить эту проблему, я попытался изменить NullValue & AllowDBNull свойство к [Empty] и true соответственно, но у меня это не сработало.

1 Ответ

1 голос
/ 23 декабря 2011

TestName является ключевым, поэтому оно не может быть нулевым.DataSet позволяет установить для столбца TestName значение Nullable, но когда вы попытаетесь его заполнить, поднимите ConstraintException, даже если вы сказали AllowDBNull = True.

Я предлагаю изменить поле Key в наборе данных со строгим набором данных или вернутьпустая строка внутри поля TestName.Лучше первый подход, возможно, установите Id в качестве ключевого поля.

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