我正在寻找一个 vb.net 示例,说明如何将数据集/数据表绑定到数据转发器并将数据元素绑定到数据集/数据表的列?谢谢
2 回答
起初我以为你想要一个网络中继器,但从你的评论中我意识到你的意思是 Microsoft.VisualBasic.PowerPacks.DataRepeater。
我需要您提供更多信息以提供最有用的示例代码(见下文)。
使用 DataRepeater 的基本步骤是:
1) 安装 Visual Basic Power Packs 3 Link
2) 打开一个 VB.net Winforms 项目并将 DataRepeater 拖到您的表单中
3) 通过 Add->New Item 将一个新数据集添加到您的项目中菜单
4) 在设计窗口中,根据需要设置列
5) 从 Data->ShowDataSources 菜单打开 Data Sources 窗口
6) 在设计模式下,转到 Data Sources 窗口中的 Dataset,然后使用下拉框到表名以选择“详细信息”
7) 将表拖到 DataRepeater 控件的顶部(在您的表单上)。现在应该在 DataRepeater 上列出表字段。你可以移动它们。
8) 在运行时,您可以加载数据集,DataRepeater 会自动反映数据的变化。没有 .Databind 是必需
的。
me.DataSet1.Tables(0).Columns.Add(New String() {"John", "Doe", "Accountant"}
或者
myDataAdapter.Fill(me.DataSet1.Tables(0))
你有没有被这些步骤绊倒?
编辑:
从我所见,看起来 DataRepeater 旨在用于在设计时将数据表添加/映射到 DataRepeater 的情况。然后您所要做的就是在运行时填充数据表,DataReader 会自动显示数据。
如果您真的想在运行时将表/控件添加到 DataRepeater,这是我为您编写的示例。它假定一个名为 Form3 的表单具有一个名为 DataRepeater1 的 DataRepeater 和一个名为 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
既然您已经看到了代码,我希望您不要使用它:)
我建议您在设计时设置您的 DataSet 结构或使用不同的控件来显示您的数据。
这是一个链接,其中包含有关使用 DataRepeater 的典型方式的大量信息: 链接
最终编辑
用户的最后一个错误是区分大小写的问题。以下代码行中的字符串“Text”必须大写以匹配控件的属性名称。我建议为“Test”创建一个 const 以避免这种错字。
[ControlName].DataBindings.Add(New System.Windows.Forms.Binding("Text", [DataTable], [Column Name], True))
Dim data As DataSet
DataRepeater1.DataSource = data
DataRepeater1.DataBind()