mysql - 使用 vb.net 将数据库列存储到按钮上的数组
问题描述
我想从我的数据库 MySql 中选择 ItemName 和 ItemPrice,然后将 ItemNames 和 ItemPrices 存储到一个按钮中,这样当我单击一个按钮时,我会得到名称和价格。
这是我的代码,它当前正在工作,并且仅在数据库中的 Row 上显示价格。我认为我需要通过按钮制作一个数组才能使其工作。
如果有人帮助我,那就太好了。我是 vb.net 的新手,想修复这个程序
Public Property BtnMenuArray As Button
Public Property BtnDoneArray As Button
Public Property GBCustemerArray As GroupBox
Public Property TBCustemerOrderArray As TextBox
Public Property TBMenuItemNameArray As TextBox
Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset
Public Function GetItemPrice(selection) As String
TBMenuItemNameArray = New TextBox
Dim output As String
con.Open("Dsn=Invintory;uid=root")
rs.Open("Select ItemPrice From menuitem where RowID = " & selection & "", con, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)
output = rs.GetString()
rs.Close()
con.Close()
Return output
End Function
Public Function GetItemName(selection) As String
Dim output As String
con.Open("Dsn=Invintory;uid=root")
'rs.Open("Select ItemName From menuitem", con, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)
rs.Open("Select ItemName From menuitem where RowID = " & selection & "", con, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)
output = rs.GetString()
rs.Close()
con.Close()
'MsgBox("Detailes are Added")
Return output
End Function
Public Sub RunDB()
Dim Ittrat As Short = GetItemCount()
TextBox1.Text = Ittrat
Dim MyNameArray As New List(Of String)
Dim MyItemPriceArray As New List(Of String)
For item = 0 To Ittrat - 1
BtnMenuArray = New Button()
MyNameArray.Add(GetItemName(item))
BtnMenuArray.Text = MyNameArray(item)
TableLayoutPanel1.Controls.Add(BtnMenuArray)
MyItemPriceArray.Add(GetItemPrice(item))
BtnMenuArray.Tag = MyItemPriceArray(item)
Next
AddHandler BtnMenuArray.Click, AddressOf ClickHandle
End Sub
Public Sub ClickHandle(ByVal sender As Object, ByVal e As _
System.EventArgs)
MsgBox(BtnMenuArray.Tag)
End Sub
解决方案
我能够弄清楚。我需要做的是在我使用的 for 循环中添加按钮的名称到 ittrat 以将按钮的名称分配为数组。这也解决了我与动态按钮事件处理程序的问题。现在,当单击按钮时,我可以看到每个按钮的名称、文本和标签。
Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset
Public Property ItemMenuBT As Button
Public Property BtnDoneArray As Button
Public Property GBCustemerArray As GroupBox
Public Property TBCustemerOrderArray As TextBox
Public Property TBMenuItemNameArray As TextBox
Public Function GetItemCount() As Short
TBMenuItemNameArray = New TextBox
Dim output As Short
con.Open("Connection String")
rs.Open("Select Count(RowID) From TableNameHere", con, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)
output = Convert.ToInt16(rs.GetString())
rs.Close()
con.Close()
Return output
End Function
Public Function GetItemPrice(selection) As String
TBMenuItemNameArray = New TextBox
TextBox1.Text = selection
Dim output As String
con.Open("Connection String")
rs.Open("Select ColumnName From TableName where RowID = " & selection & "", con, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)
output = rs.GetString()
rs.Close()
con.Close()
Return output
End Function
Public Function GetItemName(selection) As String
Dim output As String
con.Open("Connection String")
rs.Open("Select ItemName From menuitem where RowID = " & selection & "", con, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)
output = rs.GetString()
rs.Close()
con.Close()
Return output
End Function
Public Sub LOAD_ITEM_MENU()
Dim Ittrat As Short = GetItemCount()
Dim MyNameArray As New List(Of String)
Dim MyItemPriceArray As New List(Of String)
Dim buttonName As String
Dim buttonText As String
For item = 0 To Ittrat - 1
ItemMenuBT = New Button()
ItemMenuBT.Size = New Size(130, 100)
buttonName = GetItemName(item)
buttonText = GetItemPrice(item)
ItemMenuBT.Name = buttonName
ItemMenuBT.Text = buttonName
ItemMenuBT.Tag = buttonText
TableLayoutPanel1.Controls.Add(ItemMenuBT)
AddHandler ItemMenuBT.Click, AddressOf Me.ClickHand
Next
End Sub
Public Sub ClickHand(ByVal sender As Object, ByVal e As _
System.EventArgs)
Dim CST_ORD_SELCTEDItemName As Button = sender
'MsgBox("Item Name: " & CST_ORD_SELCTEDItemName.Name)
'MsgBox("Item Price: " & CST_ORD_SELCTEDItemName.Tag)
Dim valueNew As Double
valueNew = CST_ORD_SELCTEDItemName.Tag
TBCustemerOrderArray.Text = Val(TBCustemerOrderArray.Text) + valueNew
End Sub
推荐阅读
- sql-server - 对预先计算的数据进行简单计算的视图的性能影响
- security - 当我们在网页上运行此工具时,从网络扩展中捕获/泄漏数据的风险是什么?
- javascript - 如何正确地将表单中的数据发送到我的 URL?
- javascript - 反应JS。动作已成功调度但未到达减速器
- android - 在应用程序中创建 CSV 或 TXT 文件并将其保存到“下载”文件夹 - Android
- amazon-web-services - Websocket 连接支持多少个客户端 API 网关?
- python - 赋值是什么意思是Python中的语句?
- python - 使用 Spacy 的基于模式的标点符号
- python - 散景显示空图表
- reactjs - 将组件重置为模态