vb.net .Как мне привязать dataset к DataRepeater?
-
19-09-2019 - |
Вопрос
Я ищу vb.net пример того, как привязать dataset / datatable к повторителю данных и привязать элементы данных к столбцам dataset / datatable?Спасибо
Решение
Сначала я подумал, что вам нужен веб-ретранслятор, но из ваших комментариев я понял, что вы имели в виду Microsoft.VisualBasic.PowerPacks.DataRepeater.
Мне нужно от вас немного больше информации, чтобы предоставить наиболее полезный пример кода (см. Ниже).
Основными этапами использования DataRepeater являются:
1) Установите пакеты питания Visual Basic 3 Ссылка
2) Откройте проект VB.net Winforms и перетащите средство обработки данных в свою форму
3) Добавьте новый набор данных в свой проект через меню Добавить-> Новый элемент
4) В окне дизайн настройте столбцы по своему усмотрению
5) Откройте окно Источники данных из меню Data->ShowDataSources
6) Когда ваша форма находится в режиме разработки, перейдите к набору данных в окне Источники данных и с помощью выпадающего списка рядом с названием таблицы выберите "Подробности".
7) Перетащите таблицу в верхнюю часть элемента управления DataRepeater (в вашей форме).Поля таблицы теперь должны быть перечислены в вашем DataRepeater.Вы можете перемещать их по кругу.
8) Во время выполнения вы можете загрузить набор данных, и DataRepeater автоматически отразит изменения данных.Нет .Привязка к данным не требуется
бывший.
me.DataSet1.Tables(0).Columns.Add(New String() {"John", "Doe", "Accountant"}
или
myDataAdapter.Fill(me.DataSet1.Tables(0))
Вы спотыкаетесь на какой-нибудь из этих ступенек?
Редактировать:
Из того, что я видел, похоже, что DataRepeater предназначен для использования в ситуациях, когда вы добавляли / сопоставляли datatable с DataRepeater во время разработки.Затем все, что вам нужно сделать, это заполнить datatable во время выполнения, и DataReader автоматически отобразит данные.
Если вы действительно хотите добавить таблицу / элементы управления в DataRepeater во время выполнения, вот пример, который я закодировал для вас.Он принимает форму с именем Form3 с программой обработки данных с именем DataRepeater1 и кнопкой с именем Button1...
Public Class Form3
''Set up demo DataSet/DataTable
Const FRUIT_COL As String = "Fruit"
Const COLOR_COL As String = "Color"
MyDataSet = New DataSet
MyDataSet.Tables.Add("MyTable")
With MyDataSet.Tables(0)
.Columns.Add(FRUIT_COL, GetType(System.String))
.Columns.Add(COLOR_COL, GetType(System.String))
End With
''Populate the DataTable with sample data. You would be loading from SQL
With MyDataSet.Tables(0)
.Rows.Add(New String() {"Apple", "Red"})
.Rows.Add(New String() {"Orange", "Orange"})
.Rows.Add(New String() {"Banana", "Yellow"})
End With
''These objects would normally be created automatically if you added DataTable to DataRepeater at design-time
FruitLabel = New Label
FruitTextBox = New TextBox
ColorLabel = New Label
ColorTextBox = New TextBox
With FruitLabel
.AutoSize = True
.Location = New Point(10, 20)
.Name = "FruitLabel"
.Text = FRUIT_COL
End With
With ColorLabel
.AutoSize = True
.Location = New Point(10, 60)
.Name = "FruitLabel"
.Text = FRUIT_COL
End With
With FruitTextBox
.Location = New Point(50, 20)
.Size = New Size(60, 15)
.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.MyDataSet.Tables(0), FRUIT_COL, True))
End With
With ColorTextBox
.Size = New Size(60, 15)
.Location = New Point(50, 60)
.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.MyDataSet.Tables(0), COLOR_COL, True))
End With
''Add the controls that will be displayed for each row in DataTable
With DataRepeater1
.ItemTemplate.Controls.Add(FruitLabel)
.ItemTemplate.Controls.Add(FruitTextBox)
.ItemTemplate.Controls.Add(ColorLabel)
.ItemTemplate.Controls.Add(ColorTextBox)
End With
''Run-time population of DataRepeater from your DataTable
DataRepeater1.DataSource = MyDataSet
DataRepeater1.DataMember = MyDataSet.Tables(0).TableName
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Example of how you can add additional rows with form elements
With MyDataSet.Tables(0)
.Rows.Add(New String() {"Grapes", "Green"})
End With
End Sub
End Class
Теперь, когда вы увидели код, я надеюсь, что вы не будете им пользоваться :)
Я предлагаю вам либо настроить структуру вашего набора данных во время разработки, либо использовать другой элемент управления для отображения ваших данных.
Вот ссылка, в которой содержится много информации о типичном способе использования DataRepeater:Ссылка
Окончательное редактирование
Последней ошибкой пользователя была проблема с чувствительностью к регистру.Строка "Text" в следующей строке кода должна быть написана с заглавной буквы, чтобы соответствовать имени свойства элемента управления.Я рекомендую создать const для "Test", чтобы избежать этой опечатки.
[ControlName].DataBindings.Add(New System.Windows.Forms.Binding("Text", [DataTable], [Column Name], True))
Другие советы
Dim data As DataSet
DataRepeater1.DataSource = data
DataRepeater1.DataBind()