2014-02-21 7 views
1

В настоящее время я пытаюсь заполнить таблицу с загрузкой формы в соответствии с определенным идентификационным номером.Заполните DataSet с помощью SqlTableAdapter в соответствии с ID #

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

Однако, я просто хочу записи where ID = 1

Я использую VB 2012 с SQL Server

Может кто-то пожалуйста, объясните, как я идти об этом?

оригинальный строка кода:

Me._6OrdersTableAdapter.Fill(Me.Online_Portal_Solutions_DatabaseDataSet._6Orders) 

Когда я пытаюсь добавить новый запрос в таблицу в конструкторе набора данных я получаю это предупреждение: (Не слишком уверен, что это значит:

«новый текст команда возвращает данные со схемой, отличной от схемы основного запроса. Проверьте текст команды вашего запроса, если это не требуется.»

Запрос я добавил следующим образом:

SELECT OrderNoID, CustomerID, CollectionDate, DeliveryDate 
     , ServiceType, PostalZone, DeliveryAddress, Product 
     , HazardType, Weight, NoOfPallets, OtherNotes 
FROM [6Orders] 
WHERE (HaulierID = 1) 

Я назвал fillhaulierjkp запрос и изменил исходную строку кода следующим образом:

Me._6OrdersTableAdapter.fillhaulierjkp(Me.Online_Portal_Solutions_DatabaseDataSet._6Orders) 

Затем, когда я запустить приложение я получаю эту ошибку, когда page:

«Не удалось включить ограничения. Один или несколько строк содержат значения, нарушающие ненулевые, уникальные или внешнего ключ ограничения «.

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

+2

Может разместить некоторый код. – Shell

+0

Опубликуйте некоторые соответствующие коды, показывающие, что вы пробовали до сих пор, затем мы можем попытаться исправить необходимые части, чтобы получить только записи, где ID = 1. – har07

+0

@ har07 Я представил то, что я пробовал в вопросе; не могли бы вы рассказать мне, что я делаю неправильно? –

ответ

0

Эта последняя проблема связана с ограничениями, установленными на вашем DataSet. Возможно, у вас есть столбцы, не принимающие пустые значения или уникальные ключи, нарушаемые. В любом случае вы должны либо удалить ограничения на ошибки, изменить запрос на сервер так, чтобы он соответствовал вашей схеме или отключил ограничения, установив EnforceConstraints на False. Обычно, когда эта ошибка выбрасывается, вы также должны иметь строку сбоев s, имеющих свое свойство RowError, указывающее, какие ограничения (проблемы) вызывают проблему.

Что касается вашей прежней проблемы, это вызвано набором результатов вашего сервера, отличным от того, что ожидает схема DataTable. Если, например, у вас есть столбец String, имя которого соответствует столбцу сервера int, эта ошибка будет выбрана.

0

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

Для параметра загрузки вашей формы

заменить

where ID = 1 

с

where ID = ? 

Это создаст @ заявление параметр1 в адаптере таблицы.

Затем заполните параметр, например. nPID

Me.TA1.Fill(Me.DsClients.tblClients_Dems, nPID)