1

再会,

我想显示我的表“订阅者”中的电话号码,并具有与其关联的相同值(作为字符串)。例如,我想显示这些数字:

+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

谢谢。

4

2 回答 2

0

您的ListBoxSubscribers控件使用 DataTable 作为其DataSource,这意味着列表中的项目是 DataRowView 项目,而不是字符串。

您还遍历Items集合,而不是ValueMember属性。

快速解决:

For Each item As DataRowView In ListBoxSubscribers.Items
  Dim PhoneNumber As String = item("Phone").ToString
  '\\ etc
Next
于 2012-05-05T18:21:03.827 回答
0

valuemember 必须是主键,顺便说一句,您没有遍历整个 valueMembers,它只是该控件中设置的“字符串”,尝试将 displayMember 和 ValueMember 设置为数据集中的列,例如:

listboxsubscribers.displayMember = dataset.Tables(0).columns(index)
于 2012-05-05T15:10:17.770 回答