列表框VB.NET的ValueMember
你好 我想显示表“订阅者”中的电话号码,其值(与字符串)相同。例如,我想显示以下数字:列表框VB.NET的ValueMember,vb.net,Vb.net,你好 我想显示表“订阅者”中的电话号码,其值(与字符串)相同。例如,我想显示以下数字: +12345678 +87654321 这是我的密码: Dim conStr As String = ConfigurationManager.ConnectionStrings("dbConnectionString").ConnectionString Dim adapter As New SqlDataAdapter("Select * from tblSubscribers", conStr) D
+12345678
+87654321
这是我的密码:
Dim conStr As String = ConfigurationManager.ConnectionStrings("dbConnectionString").ConnectionString
Dim adapter As New SqlDataAdapter("Select * from tblSubscribers", conStr)
Dim dataset As DataSet = New DataSet
adapter.Fill(dataset)
ListBoxSubscribers.DataSource = dataset.Tables(0)
ListBoxSubscribers.DisplayMember = "Phone"
ListBoxSubscribers.ValueMember = "Phone"
我正在尝试遍历列表框的每个值。问题是我得到的是P,h,o,n,e而不是实际的数字。这是我的迭代程序:
For Each item As String In ListBoxSubscribers.ValueMember
Dim PhoneNumber As String = item.ToString
TextBoxPhoneNumberDisplay.Text = PhoneNumber
SendSMS(PhoneNumber, msg)
System.Threading.Thread.Sleep(2000)
Next
谢谢。valuemember必须是主键,顺便说一下,您没有遍历整个valuemember,它只是在该控件中设置的“字符串”,请尝试将displayMember和valuemember设置为数据集中的列,如:
listboxsubscribers.displayMember = dataset.Tables(0).columns(index)
您的
ListBoxSubscribers
控件正在使用DataTable作为其数据源,这意味着列表中的项是DataRowView项,而不是字符串
您还可以遍历Items
集合,而不是ValueMember
属性
快速修复:
For Each item As DataRowView In ListBoxSubscribers.Items
Dim PhoneNumber As String = item("Phone").ToString
'\\ etc
Next
查看文档,我非常确定valuemember和displaymember只能是您正在使用的类的属性,在本例中是DataSet类。