gpt4 book ai didi

mysql - vb .NET ComboBox 从保存数据集中的值的字典填充

转载 作者:行者123 更新时间:2023-11-28 23:57:18 25 4
gpt4 key购买 nike

这是一种在基于MySQL的应用中维护用户权限的形式。每个用户都有属性,例如姓名、职位、入职日期等,还可以访问应用程序三个区域的权限:“用户维护”、“供应商维护”和“订单管理”。访问权限可以是“无权访问”、“只读”、“修改”中的一种。它们保存在 Dictionary 对象中。

在表单上,​​应用程序的每个区域都有组合框,需要分配访问权限。当前访问权限在数据库表中的用户记录中。

代码如下:

Public Class _000Test

Private Enum AccessPrivilege
no_access = 0
read_only = 1
modify = 2
End Enum

Private AccessList As New Dictionary(Of Integer, String) From _
{{AccessPrivilege.no_access, "kein Zutritt"}, _
{AccessPrivilege.read_only, "darf lesen"}, _
{AccessPrivilege.modify, "darf bearbeiten"}}

Private Sub _000Test_Load(sender As Object, e As EventArgs) Handles MyBase.Load

OrderAdminComboBox.DataSource = New BindingSource(AccessList, Nothing)
OrderAdminComboBox.ValueMember = "Key"
OrderAdminComboBox.DisplayMember = "Value"
OrderAdminComboBox.DataBindings _
.Add(New System.Windows.Forms.Binding("SelectedValue", UserBindingSource, "OrderAdmin", True))

SupplierAdminComboBox.DataSource = New BindingSource(AccessList, Nothing)
SupplierMaintComboBox.ValueMember = "Key"
SupplierMaintComboBox.DisplayMember = "Value"
SupplierMaintComboBox.DataBindings _
.Add(New System.Windows.Forms.Binding("SelectedValue", UserBindingSource, "SupplierMaint", False))

OrderAdminComboBox.DataSource = New BindingSource(AccessList, Nothing)
OrderAdminComboBox.ValueMember = "Key"
OrderAdminComboBox.DisplayMember = "Value"
OrderAdminComboBox.DataBindings _
.Add(New System.Windows.Forms.Binding("SelectedValue", UserBindingSource, "OrderAdmin", True))

Me.UserTableAdapter.Fill(Me.Bringadb_AppDS.User)

End Sub

我遇到的问题是组合框不起作用。无论表中数据库记录中的值是什么,组合框都会显示 0 -“无访问权限”。我还在表中拥有访问权限值并将 DataSource 属性设置为它 - 结果相同。

有什么提示吗?提前致谢。

最佳答案

我认为从数据库类型 SByte 转换为 Integer(Int32) 失败。
尝试向绑定(bind)对象添加格式并使用 Convert.ToInt32(value) 方法转换为 Int32

OrderAdminComboBox.DataSource = New BindingSource(AccessList, Nothing)
OrderAdminComboBox.ValueMember = "Key"
OrderAdminComboBox.DisplayMember = "Value"

'Create binding object with Format event handler
Dim bindAccess As New Binding("SelectedValue", UserBindingSource, "OrderAdmin")
AddHandler bindAccess.Format, Sub(sender, e) e.Value = Convert.ToInt32(e.Value))

OrderAdminComboBox.DataBindings.Add(bindAccess)

关于mysql - vb .NET ComboBox 从保存数据集中的值的字典填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31314140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com