Итак, для вопроса, который я задал в комментариях, я предполагаю, что вы хотите использовать поле со списком в качестве навигационного устройства. Вы меняете комбо и кучу других элементов управления в форме, изменяя их содержимое. Я предполагаю это из того, что похоже на то, что код пытается сделать. Если это не то, что вы пытаетесь сделать, дайте мне знать, и я сделаю исправленный ответ
Итак, у вас есть набор данных и табличный адаптер, который загружает всех ваших издателей. На самом деле, дважды - вы можете удалить одну из этих идентичных команд заполнения из обработчика события Load формы. Нет смысла делать два вызова одной и той же вещи сразу после друг друга
Далее, вам нужно выбросить весь этот код в EstablishConnection и каждый вызов этого. Совместное использование адаптеров данных и табличных адаптеров, особенно когда вы только начинаете, приведет к путанице. Адаптеры таблиц великолепны, они генерируют безопасные sql, которые могут иметь параметры и просты в использовании. То, что у вас есть здесь, в вашем сабе EstablishConnection, - очень небезопасный способ запуска SQL. Для чего, прочитайте http://bobby-tables.com, затем вернитесь и удалите этот код, так что у вас просто так 1008 *
Public Class Form1
Private Sub PublishersBindingNavigatorSaveItem_Click(sender As Object, e As EventArgs)
Me.Validate()
Me.PublishersBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.ContactsDataSet)
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.PublishersTableAdapter.Fill(Me.ContactsDataSet.Publishers)
End Sub
End Class
Да, что весь код, который находится за вашим кодом формы, должен в данный момент содержать
Теперь, go для вашего дизайнера форм и удалить все комбинации, текстовые поля, метки и т. Д. c, которые относятся к издателю. Я знаю, это звучит так, будто я пытаюсь заставить вас отслеживать sh ваш проект, но это так, чтобы я мог прийти в согласованное состояние, когда мы находимся на одной странице, и я знаю, что в вашей форме и как она связана вверх.
После того, как вы очистили свою форму (вы можете оставить ContactsDataSet, PublisherTableAdapter и другие элементы внизу, а также любые элементы управления, не связанные с издателями), откройте меню Вид, go для других Windows и выберите Данные Источники. Он покажет панель инструментов, подобную этой (и это отличный пи c, потому что он также демонстрирует некоторые другие точки):
( credit )
Поскольку из приведенного выше кода мне кажется, что вы хотите загрузить данные своего издателя в метки, а не в текстовые поля, вы можете расширить свой набор данных контактов, развернуть узел издателей и изменить тип узлы под ним (адрес, почтовый индекс, телефон, факс и т. д. c) от текстового поля до метки. После того, как вы изменили их для метки, перетащите их по одному на форму. Либо измените узел заголовка с DatagridView на Подробности, а затем перетащите узел заголовка на форму, чтобы быстро создать метку для каждого элемента в узле заголовка
Теперь у вас есть набор меток, привязанных к данным ( подключен) к вашей таблице издателей контактов. Вы можете щелкнуть любой ярлык и посмотреть в строке (Привязки данных) сетки свойств и увидеть, что их свойство Text связано со столбцом таблицы издателей, а их источником данных является то, что называется publishersBindingSource. Источник привязки поддерживает концепцию «текущей записи» в списке из нескольких записей. У вас есть 100 издателей, вы устанавливаете текущую запись bindingsource на 50-е, все метки показывают данные для 50-го издателя. Вы указываете bindingsource перейти на 51-е издательство, и все ярлыки автоматически меняют свое содержание. Вы можете убедиться в этом в действии, запустив свой проект и щелкнув стрелки в bindingnavigator вверху формы. При вызове «Заполнить форму» загружаются 100 издателей (скажем, источник привязки начинает указывать на первого, нажимая кнопку «следующий / предыдущий / последний» или ввод числа), изменит текущую запись источника привязки, которая находится между списком 100 издатели в наборе данных и ваши элементы управления (которые могут отображать только один издатель одновременно)
Теперь мы добавляем комбо к форме, чтобы действовать в качестве навигатора:
- добавить Комбо для вашей формы
- в окне свойств установите его источник данных как PublishersBindingSource - это жизненно важно
- введите слово Name в настройке DisplayMember - необходимо, чтобы комбо отображал правильные вещи
- установите DropDownStyle равным DropDownList - необязательно, но редактируемая комбинация действительно сбивает с толку этот контекст
Запустите ваш проект
При такой настройке комбо отобразит список элементов, которые он находит в источнике привязки, а выбранный в данный момент будет управлять текущей записью источника привязки , Изменение выбранного элемента в комбо приведет к изменению всех меток, потому что комбо повлияло на текущую запись источника связывания. Комбо больше не нужно, чтобы он действовал как навигатор, и попытка связать что-то еще заставит его начать действовать как редактор данных в текущей записи, а не как навигатор всех записей