我正在寻找一个vb.net示例,说明如何将数据集/数据表绑定到数据转发器,并将数据元素绑定到数据集/数据表的列? 感谢
答案 0 :(得分:3)
起初我以为你想要一个网络中继器,但是从你的评论中我意识到你的意思是Microsoft.VisualBasic.PowerPacks.DataRepeater。
我需要您提供更多信息以提供最有用的示例代码(见下文)。
使用DataRepeater的基本步骤如下:
1)安装Visual Basic Power Pack 3 Link
2)打开VB.net Winforms项目并将DataRepeater拖到表单
上
3)通过Add-> New Item菜单将新数据集添加到项目中
4)在设计窗口中,根据需要设置列
5)从Data-> ShowDataSources菜单中打开Data Sources窗口
6)将表单置于设计模式下,转到“数据源”窗口中的“数据集”,然后使用表名旁边的下拉框选择“详细信息”
7)将表拖到DataRepeater控件的顶部(在表单上)。表字段现在应该在DataRepeater上列出。你可以移动它们。
8)在运行时,您可以加载Datset,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的典型方法的大量信息: Link
最终修改
用户的最后一个错误是区分大小写的问题。以下代码行中的字符串“Text”必须大写以匹配控件的属性名称。我建议为“Test”创建一个const以避免这个错误。
[ControlName].DataBindings.Add(New System.Windows.Forms.Binding("Text", [DataTable], [Column Name], True))
答案 1 :(得分:2)
Dim data As DataSet
DataRepeater1.DataSource = data
DataRepeater1.DataBind()