Vb.net 添加与行数相等的选项卡页
我的Access数据库在单人下只有几行。某个人的行数为1,但另一个人的行数大于1。 我想创建标签页来插入此人的详细信息 创建选项卡页时Vb.net 添加与行数相等的选项卡页,vb.net,Vb.net,我的Access数据库在单人下只有几行。某个人的行数为1,但另一个人的行数大于1。 我想创建标签页来插入此人的详细信息 创建选项卡页时 选项卡页数必须等于行数。(如果此人有04行,则必须创建04个选项卡页 将单独的MS Access DB行数据(列)放入该选项卡页面 如果单击第一个选项卡页:-->该人员详细信息(字段数据/列)的第一行应带有TextBoxes或Labels 如果单击第四个选项卡页:---->该人员详细信息的第四行(字段数据/列)应与TextBoxes或Labels一起出现 我已经
TextBox
es或Label
s
如果单击第四个选项卡页:---->该人员详细信息的第四行(字段数据/列)应与TextBox
es或Label
s一起出现
我已经使用此代码根据行数创建了选项卡页
Dim newPage As New TabPage()
Dim RecCount As Integer
While QReaderQ.Read()
RecCount = RecCount + 1 ' Count How many Rows
End While
TabControl1.TabPages.Clear()
For xXx = RecCount To 1 Step -1 ' to Desending Order ---->3,2,1
newPage = New TabPage 'create new instance
If xXx = 1 Then
newPage.Text = "Repeat - 1"
Else
newPage.Text = "Repeat - " & xXx.ToString
End If
TabControl1.TabPages.Add(newPage)
Next
我想把详细资料从数据库中的标签页
例如:
第一次将数据重复到第一个选项卡页(重复数据表示DB列)。第四次将数据重复到第四个选项卡页(重复数据表示DB列)。既然您使用的是Access,我假设您使用的是
OleDb
。您没有指明QReaderQ
是什么,但根据名称,它听起来像是一个OleDbDataReader
由于(同样,根据您发布的代码)您希望按降序排列,因此我建议您改用OleDbDataAdapter
——数据读取器仅向前,因此不能按相反顺序排列
我还建议将创建每个选项卡页面的代码移动到它自己的函数中,并从For循环中调用该函数
把这些放在一起,它可能看起来像这样:
Dim TabContent As DataTable
' Pass in your selection string and your connection object
Dim Adapter As New OleDbDataAdapter("SELECT * FROM table", con)
Dim newPage As TabPage
' Fill the DataTable TabContent with the result from your select command
Adapter.Fill(TabContent)
TabControl1.TabPages.Clear()
For xXx As Integer = TabContent.Rows.Count To 1 Step -1
' Pass in the current row - use xXx - 1 since the row collection is 0 based
newPage = InitializeTabPage(TabContent.Rows(xXx - 1))
newPage.Text = "Repeat - " + xXx.ToString()
TabControl1.TabPages.Add(newPage)
Next
InitializeTabPage是一个返回选项卡页的函数。您需要在此页上创建控件
Public Function InitializeTabPage(ByVal Row As DataRow) As TabPage
Dim newPage As New TabPage()
' Create the control and bind the data from the row to them
Return newPage
End Function
在InitializeTabPage
函数中,您从表中获取一个数据行。您需要在每个选项卡页上创建文本框和标签,然后从该行将适当的数据绑定到它们
例如,如果您有一个名为lblName
的标签,并且行Name
中有一列,则可以执行以下操作:
lblName.Text = Row("Name").ToString()
一些有用的链接:
-关于VB.NET和Access的教程既然您使用的是Access,我假设您使用的是
OleDb
。您没有指明QReaderQ
是什么,但根据名称,它听起来像是一个OleDbDataReader
由于(同样,根据您发布的代码)您希望按降序排列,因此我建议您改用OleDbDataAdapter
——数据读取器仅向前,因此不能按相反顺序排列
我还建议将创建每个选项卡页面的代码移动到它自己的函数中,并从For循环中调用该函数
把这些放在一起,它可能看起来像这样:
Dim TabContent As DataTable
' Pass in your selection string and your connection object
Dim Adapter As New OleDbDataAdapter("SELECT * FROM table", con)
Dim newPage As TabPage
' Fill the DataTable TabContent with the result from your select command
Adapter.Fill(TabContent)
TabControl1.TabPages.Clear()
For xXx As Integer = TabContent.Rows.Count To 1 Step -1
' Pass in the current row - use xXx - 1 since the row collection is 0 based
newPage = InitializeTabPage(TabContent.Rows(xXx - 1))
newPage.Text = "Repeat - " + xXx.ToString()
TabControl1.TabPages.Add(newPage)
Next
InitializeTabPage是一个返回选项卡页的函数。您需要在此页上创建控件
Public Function InitializeTabPage(ByVal Row As DataRow) As TabPage
Dim newPage As New TabPage()
' Create the control and bind the data from the row to them
Return newPage
End Function
在InitializeTabPage
函数中,您从表中获取一个数据行。您需要在每个选项卡页上创建文本框和标签,然后从该行将适当的数据绑定到它们
例如,如果您有一个名为lblName
的标签,并且行Name
中有一列,则可以执行以下操作:
lblName.Text = Row("Name").ToString()
一些有用的链接:
-关于VB.NET和Access的教程