Вопрос

Я ищу 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()
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top