2017-01-30 10 views
-1

私は、緯度と経度と共にポストコードのテーブルを持っています。 ユーザー投稿複数行のテキストボックスに郵便番号のリストとリストがsql = "SELECT postcode, latitude,longitude FROM geocodes WHERE postcode IN (" & PCList & ")"に作成され、供給されMySQL最後の行だけを返します

PCListは私が今までにのみ、最後の郵便番号を取得する形式で

'AL7 2BQ ','B12 9BS ','B14 7QU ','B21 9SF ','B24 9PJ ','B27 7RR ' 
,'B33 0NG ','B42 1NN ','B63 4RH ','B64 5AB ','B65 0LG ','B70 9QL ' 
,'B73 5AB ','B79 7AG ','BH1 1EN ','BH1 4SX ','BH9 2HE ','BL1 8TH ' 
,'BL3 6JR ','BL4 9HF ','BL5 3YY ','BL8 2EQ ','BN2 5TB ','BN9 0AD' etc. 

です。私は、MysqlDatareader、Datasetsを試してみました。mySQL文字列は、ワークベンチ内の完全なリストを返します。

SQLを何か「SELECT postcode, latitude,longitude FROM geocodes WHERE postcode LIKE 'B65%'」に置き換えた場合、B65をデータレデイサまたはデータセットで開始するポストコードの完全なリストが表示されますが、mySQL WHERE INを使用することはできません。ここで

コードです: -

Protected Sub ShowLocsButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ShowLocsButton.Click 
    Dim PCList As String = Replace(Me.PostcodeListTextBox.Text, vbCrLf, "','") 
    PCList = "'" & PCList & "'" 
    GetMarkers(PCList) 
End Sub 

Protected Sub GetMarkers(ByVal PCList As String) 
Dim PointsDs As New DataSet 
    Dim PointsDa As MySqlDataAdapter 
    Dim ConnString As String = ConfigurationManager.ConnectionStrings("ConnString").ConnectionString 
    Dim conn As New MySqlConnection(ConnString) 
    command.Connection = conn 
    If conn.State <> ConnectionState.Open Then 
     conn.Open() 
    End If 
    sql = "SELECT postcode, latitude,longitude FROM geocodes WHERE postcode IN (" & PCList & ")" 
    command.CommandText = sql 
    PointsDR = command.ExecuteReader() 
    'Dim myrow As Integer = 0 
    Me.VRPMap.Layers.Clear() 
    'MsgBox(PointsDs.Tables(0).Rows.Count) 
    While PointsDR.Read 
     Dim myPostcode As String = PointsDR.GetString(0) 
     Dim myLatitude As String = PointsDR.GetValue(1) 
     Dim myLongitude As String = PointsDR.GetValue(2) 
    End While 
    conn.Close() 

エンドサブ

+1

この問題は、私たちが見ることができないコードによって引き起こされます。 – Strawberry

+1

what& 'PCList&' –

+0

すべてのポストコードの最後のスペースがインデントされていますか? – apomene

答えて

0
sql = "SELECT postcode, latitude,longitude FROM geocodes WHERE postcode IN (" % PCList % ")" 
+0

いいえ動作しません。私はそれが各ポストの末尾のスペースにあると思う、私はそれが動作するので、私のコードはPCMCIA文字列=置換(Me.PostcodeListTextBox.Text、vbLf、 "'、" ") PCList ="' " &PCList& "'"は後続のスペースなしで適切な値を返していません。 –

0

その私の文字列の作成でのvbCrLfでvblf置き換え、トレーニングスペースだった、問題は解決しました。

関連する問題