Replace di un campo text

mercoledì 19 gennaio 2005 - 14.49

trinity Profilo | Guru

Ragazzi,
vi pongo un dilemma:

di solito utilizzo il replace in questo modo:

'"& Replace(Me.Textbox1.text, "'", "''") &"'

per evitare che se vengono scritte parole contenti delle apici, nel database viene salvata la parola corretta.

ma nel caso in cui nella text venga scritto del testo contente il seguente simbolo? \ o / nel database non mi viene scritto.

come faccio a fare contemporaneamente il replace di un campo text che contiene sia parole con l'apice che parole con lo \?

Ciao
Fabio

Cteniza Profilo | Guru

Se usi i parametri (sui command e sui dataadapter) il problema apici non esiste

AntCiar Profilo | Expert

Puoi utilizzare una "serie" di Replace

es: var = me.textbox1.text.Replace(".","").replace("\","").Replace("/","") etc......

trinity Profilo | Guru

ho provato a fare come mi avete detto ma niente da fare, io faccio di solito così: replace(me.textbox1.text,"\","\\") e funziona ma il problema è che nella stessa textbox possono essere scritte anche parole che contengono apici...Mi potete dare altre dritte.

Ciao
Fabio

AntCiar Profilo | Expert

Ciao Fabio,
io ho trovato due metodi per risolvere il tuo problema. NOTE: negli esempi faccio riferimento ad una variable di tipo stringa che chiamo Pippo, contenente il testo originale( per capirci, con i caratteri NON ancora sostituiti). La sostituzione la faccio stesso su Pippo. La cosa funziona anche se la fai su di un'altra variabile o TextBox o altro.

1) Inserire i valori da sostituire in modo "standard" ossia cablati nel codice.

Pippo = Pippo.replace("\","\\").replace("'","_").Replace(".",":").replace......

in questo modo elenco tutti i caratteri da sostituire all'interno della stringa Pippo e il risultato lo riverso in Pippo.

2) Leggo da database l'elenco dei caratteri da sostituire e i relativi caratteri di sostituzione.

Dim OleSTR As String
Dim DtReader As System.Data.OleDb.OleDbDataReader
Dim OLECommCim As OleDb.OleDbCommand = DbConnection.CreateCommand

OleSTR = "SELECT Caratt, Sostituto FROM ListaCaratteri;"

if DbConnection.State = Closed
DbConnection.Open
End if

OLECommCim.CommandText = OleSTR
DtReader = OLECommCim.ExecuteReader

While DtReader.Read()
pippo = pippo.replace(dtreader("Caratt"),Dtreader("Sostituto"))
End While
DtReader.Close()

if DbConnection.State = Open
DbConnection.closed
End if

Ho utilizzato una tabella chiamata ListaCaratteri contenente i campi "Caratt" e "Sostituto" che contengono rispettivamente il valore da cambiare e il rispettivo valore da sostituire. In questo modo puoi sempre cambiare i caratteri da sostiuire senza dover mettere le mani nel codice.

Ciao
Cristian
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5