sto impazzendo!
posillipo
posillipo non è online. Ultima attività: 04/01/2010 15.56.34posillipo
il 20 novembre 2009 alle 21:50
www.prnet.it | 202 messaggi dal 18 dicembre 2002
Cari mostri del VB vi prego aiutatemi, sto letteralmente impazzendo, vengo al dunque:


devo passare il valore ad una variabile in questo modo


nome = masterRow("locale").ToString()


il problema è che se il valore del campo è ad esempio "CAPO VERDE" alla variabile viene passato solo CAPO senza il resto della frase.

Come faccio a risolvere sta cosa????
Vi riporto anche il codice per intero:


Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load




Gmap.GoogleKey = Application("GoogleKey")

If Not Me.IsPostBack = True Then

Gmap.Height = 400

gmap.Visible = True
gmap.Overlays.Clear()
' gmap.ShowOverviewMap = True
' gmap.ShowScaleControl = True

gmap.Controls.Add(New Reimers.Map.Controls.GoogleSmallMapTypeControl("lmc"))

Dim MyConnection As Data.OleDb.OleDbConnection
Dim MyCommand As Data.OleDb.OleDbDataAdapter
Dim MyDataset As Data.DataSet
Dim MyTable As Data.DataTable
Dim sqlstr As String
Dim numrows As Integer


sqlstr = "SELECT location.locale, location.lat, location.log, location.id_gestore, location.id FROM location WHERE (((location.log) Is Not Null) AND ((location.id_gestore)=14))"


MyConnection = New Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application("percorsoDB"))
MyCommand = New Data.OleDb.OleDbDataAdapter(sqlstr, MyConnection)
MyDataset = New Data.DataSet
MyCommand.Fill(MyDataset)

MyTable = New Data.DataTable
MyTable = MyDataset.Tables(0)
numrows = MyTable.Rows.Count
If numrows > 0 Then

Dim menuFile As String

menuFile = ""
Dim lat As String
Dim lng As String

Dim nome As String

Dim logo As String
Dim MyOption As New Reimers.Map.GoogleMarkerOptions
Dim Baloon As String
Dim destinationID As String

For Each masterRow As System.Data.DataRow In MyDataset.Tables(0).Rows
destinationID = masterRow("id").ToString()
lat = masterRow("lat").ToString()
lng = masterRow("log").ToString()
nome = masterRow("locale").ToString()

nome = masterRow("locale").ToString()



Baloon = "<table cellpadding=5><tr><td align=left rowspan=2 valign=middle>" & logo & "<br /></td><td align=left rowspan=2 ><strong>" & nome & "<br /></strong><br /><br /><a href=offerte.aspx?location=" & nome & ">trova le offerte per questa DESTINAZIONE</a><br /></td></tr><tr></tr></table>"


Dim DestEvent As New Reimers.Map.GoogleMarkerOptions
DestEvent.Clickable = True
DestEvent.Title = masterRow("locale").ToString()
'Dim MyMarker = New GoogleMarker(name, lat, lng)


Dim marker As New Reimers.Map.GoogleMarker
marker.ID = destinationID
marker.Latitude = lat
marker.Longitude = lng


Gmap.Overlays.Add(marker)

marker.MarkerText = Baloon
Gmap.Overlays.Add(marker)




Next
Gmap.PostRenderScript = Gmap.ZoomToBounds(Gmap.Overlays.Bounds)


End If



End If



End Sub


RE: sto impazzendo!
giuffrixyz
giuffrixyz non è online. Ultima attività: 05/02/2010 9.32.09giuffrixyz
il 20 novembre 2009 alle 23:53
47 messaggi dal 04 agosto 2008
Ciao,
uso C# e non VB per cui non sono sicurissimo ma il codice mi sembra corretto, così come sono convinto che la variabile nome venga valorizzata correttamente; non è invece che tu vai a verificare il link?
Lì mi pare che ci sia un errore; in sostanza dovresti inserire quest'istruzione:




nome = masterRow("locale").ToString()


nome = Server.UrlEncode(nome)

Baloon = "<table cellpadding=5><tr><td align=left rowspan=2 valign=middle>" & logo & "<br /></td><td align=left rowspan=2 ><strong>" & nome & "<br /></strong><br /><br /><a href=offerte.aspx?location=" & nome & ">trova le offerte per questa DESTINAZIONE</a><br /></td></tr><tr></tr></table>"



Se così andasse bene, il comportamento da te registrato sarebbe dovuto a come il browser legge l'href del tag <a/> e incontra uno spazio, troncando questo e ciò che segue.

Fammi sapere se è così...
Ciao
Salvo
Modificato da giuffrixyz il 20 novembre 2009 22.54 -
RE: sto impazzendo!
posillipo
posillipo non è online. Ultima attività: 04/01/2010 15.56.34posillipo
il 21 novembre 2009 alle 09:23
www.prnet.it | 202 messaggi dal 18 dicembre 2002
Ciao giuffrixyz,
prima di tutto grazie per l'aiuto. Dunque, il tuo suggerimento ha risolto in parte il problema. Infatti adesso alla variabile viene assegnata l'intera stringa (es. NEW YORK) ma, quando il valore da passare è composto da più parole, come nell'esempio, ogni parola viene intervallata da uno + (piu segno aritmentico)... mi domando e dico.. perchè... perchè... non c'ho dormito la notte e devo consegnare sto lavoro per domani!!!!!!!!!!!!!!!!!!!

se hai altre idee... ti prego di aiutarmi!
grazie mille
RE: sto impazzendo!
giuffrixyz
giuffrixyz non è online. Ultima attività: 05/02/2010 9.32.09giuffrixyz
il 21 novembre 2009 alle 10:35
47 messaggi dal 04 agosto 2008
Ciao,
la sostituzione dello spazio con il segno '+' serve proprio a rendere compatibile la stringa con le URL; la QueryString dovrà essere poi codificata dalla pagina destinazione (offerte.aspx nel tuo caso).
Come fa la pagina offerte.aspx a leggere il parametro 'location'?
Se usi:
If Not Request.QueryString("location") = Nothing Then
Dim nome As String
nome = Request.QueryString("location")
Label1.Text = nome
End If
Il parametro viene trasformato correttamente con lo spazio al posto del segno '+'; se usi altri sistemi potrebbe essere necessario utilizzare il metodo inverso (usalo solo se necessario):
nome = Server.UrlDecode(nome)

Ciao
Salvo

 

Torna al forum |   Feed RSS
ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
COMMUNITY
ULTIMI MESSAGGI
UTENTI ONLINE
MEDIA
IN EVIDENZA
MISC
Powered by .db Forums "Caesar Reborn" v. 2010.2.8