1

良い一日、

同じ値 (文字列) が関連付けられたテーブル「Subscribers」の電話番号を表示したいと思います。たとえば、次の数値を表示したいと思います。

+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

valuemember は主キーである必要があります。valueMembers 全体を反復処理するのではなく、そのコントロールに設定されている「文字列」だけです。次のように、displayMember と ValueMember をデータセットの列に設定してみてください。

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

ListBoxSubscribersコントロールは DataTable を として使用しています。これは、リスト内の項目が文字列ではなくDataRowViewDataSource項目であることを意味します。

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 に答える