Mysql 为什么cmbStream.ValueMember=";id";所有值均显示零。DisplayMember=";名称“;显示正确的值
我按照教程将数据从数据库插入组合框,但似乎分配给所有数据的ValueMember是相同的,即使DisplayMember显示正确 这就是我将数据添加到组合框的方式Mysql 为什么cmbStream.ValueMember=";id";所有值均显示零。DisplayMember=";名称“;显示正确的值,mysql,vb.net,Mysql,Vb.net,我按照教程将数据从数据库插入组合框,但似乎分配给所有数据的ValueMember是相同的,即使DisplayMember显示正确 这就是我将数据添加到组合框的方式 私有子cmbStream\u VisibleChanged(发送方作为对象,e作为事件参数)处理cmbStream.VisibleChanged 如果cmbStream.Visible=True,则 cmbStream.DataSource=GetStreamItems() cmbStream.DisplayMember=“名称” c
私有子cmbStream\u VisibleChanged(发送方作为对象,e作为事件参数)处理cmbStream.VisibleChanged
如果cmbStream.Visible=True,则
cmbStream.DataSource=GetStreamItems()
cmbStream.DisplayMember=“名称”
cmbStream.ValueMember=“id”
如果结束
端接头
在得到这样的数据之后
函数GetStreamItems()作为(StreamItem的)列表
Dim streamItems=新列表(StreamItem)
作为MySqlDataReader的Dim读取器
MysqlConn=新的MySqlConnection
MysqlConn.ConnectionString=“server=”&My.Settings.MServer&“;user=”&My.Settings.MDbUser&“;password=”&My.Settings.MDbPass&“;database=”&My.Settings.MDb&“”
Dim sql As String=“从tbl\U流中选择id、名称”
Dim命令作为MySqlCommand
MysqlConn.Open()
Command=newmysqlcommand(sql,MysqlConn)
Command.CommandTimeout=30
reader=Command.ExecuteReader()
如果reader.HasRows=True,则
而reader.Read()
添加(新的StreamItem(读卡器(“id”)、读卡器(“名称”))
结束时
如果结束
退货项目
端函数
下面是StreamItem类
公共类StreamItem
Public Sub New(ByVal id为整数,ByVal name为字符串)
mID=id
mName=名称
端接头
作为整数的私有mID
公共属性id()为整数
收到
返回id
结束
设置(ByVal值为整数)
中值=值
端集
端属性
私有mName作为字符串
作为字符串的公共属性名()
收到
返回mName
结束
设置(ByVal值作为字符串)
mName=值
端集
端属性
末级
在代码中将所有数据的ValueMember设置为零时,我可能会犯什么错误?您没有为get使用正确的变量。它应该是mID,而不是id
Public Property id() As Integer
Get
Return mID
End Get
Set(ByVal value As Integer)
mID = value
End Set
End Property
在VB.NET中,函数/属性的名称也用作返回值的某种变量。这与执行Return 123相同
Function SomeFunc() As Integer
SomeFunc = 123
End Function
还是你的情况
Public Property id() As Integer
Get
id = mID
End Get
Set(ByVal value As Integer)
mID = value
End Set
End Property
由于尚未设置id,因此默认值为0。无论如何,不要使用该功能,这很混乱。您的属性get for
id
的返回变量不正确。它显示Return id
,而不是Return mID
yes。另外:在分配数据源之前,设置DisplayMember
和ValueMember
字段。