我可能今天上午正在網絡上的東西很簡單,但我收到以下錯誤:DataTable的語法錯誤表達錯誤
Syntax error in the expression
在這行代碼:
Dim result() As DataRow = tmp_Table.Select("id, name, Snippet, description, lat, lng, " & _
嘗試當在vb.net中查詢我的dataTable。
這裏是我的代碼:
Dim tmp_Table As DataTable = New DataTable("radiusDataFromCSV")
Dim center_lat As Double = 0
Dim center_lng As Double = 0
Dim radius As Integer = 0
Dim tmpName As String = ""
Dim tmpSnippet As String = ""
Dim tmpdescription As String = ""
Dim tmpcoordinates As String = ""
Dim tmpLat As Double = 0
Dim tmpLng As Double = 0
'Add columns.
tmp_Table.Columns.Add(New DataColumn("id", GetType(Integer)))
tmp_Table.Columns.Add(New DataColumn("name", GetType(String)))
tmp_Table.Columns.Add(New DataColumn("Snippet", GetType(String)))
tmp_Table.Columns.Add(New DataColumn("description", GetType(String)))
tmp_Table.Columns.Add(New DataColumn("lat", GetType(Double)))
tmp_Table.Columns.Add(New DataColumn("lng", GetType(Double)))
'****Some code between here left out***
Dim result() As DataRow = tmp_Table.Select("id, name, Snippet, description, lat, lng, " & _
"(3959 * acos(cos(radians(" & EscapeLikeValue(center_lat) & ")) " & _
"* cos(radians(lat)) " & _
"* cos(radians(lng) " & _
"- radians(" & EscapeLikeValue(center_lng) & ")) " & _
"+ sin(radians(" & EscapeLikeValue(center_lat) & ")) " & _
"* sin(radians(lat)))) AS distance " & _
"FROM tmp_Table " & _
"HAVING distance < " & EscapeLikeValue(radius) & " " & _
"ORDER BY distance")
Private Function EscapeLikeValue(value As String) As String
Dim sb As New StringBuilder(value.Length)
For i As Integer = 0 To value.Length - 1
Dim c As Char = value(i)
Select Case c
Case "]"c, "["c, "%"c, "*"c
sb.Append("[").Append(c).Append("]")
Exit Select
Case "'"c
sb.Append("''")
Exit Select
Case Else
sb.Append(c)
Exit Select
End Select
Next
Return sb.ToString()
End Function
我是什麼,以便引起該錯誤失蹤?
你誤會了'DataTable.Select'。第一個參數是過濾器。我想你想填表。然後,您不需要手動添加列,而是在您的select-sql和dataAdapter.Fill(tmp_Table)'中使用'DataAdapter'。 – 2014-10-31 13:53:58
@TimSchmelter我已經更新了問題本身,因爲你給了我這個建議。我現在正在上面的OP中得到一個新的錯誤。 – StealthRT 2014-10-31 13:56:29