Bug dell'apostrofo nelle query

giovedì 01 giugno 2006 - 10.00

bluland Profilo | Guru

salve ho creato una ddl riempita da un campo di un db sql che mi server per selezionare un record che poi verra' mostrato su datagrid, tutto funziona, fino a quando mi sono accorto che se nel campo che mi funge da seleziona per il il datagrid c'e un apostrofo mi da problemi,

come risolverlo??
saluti ENzo

micto27 Profilo | Senior Member

>salve ho creato una ddl riempita da un campo di un db sql che
>mi server per selezionare un record che poi verra' mostrato su
>datagrid, tutto funziona, fino a quando mi sono accorto che se
>nel campo che mi funge da seleziona per il il datagrid c'e un
>apostrofo mi da problemi,
>
>come risolverlo??
>saluti ENzo

quando esegui la query di selezione devi, per il valore in questione
duplicare gli apici contenuti

es. D'AMICO

select xxxxxxx, yyyyy where nome = 'D''AMICO'

ciao, Michele

blood Profilo | Senior Member

SELECT dato
FROM tabella
WHERE dato = @dato

@dato - > parametro da aggiungere al comando da eseguire.L'uso di parametri è molto piu pratico e sicuro poichè formatta il dato che tu inserisci nel tipo che decidi tu quindi eliminando caratteri extra che potrebbero venire interpretati maliziosamente (vedi injection)

bluland Profilo | Guru

ecco la mia: select * from miatabella where id= '"& dropdownlist.selected.value &"'

con i parameter come verrebbe?

micto27 Profilo | Senior Member

>ecco la mia: select * from miatabella where id= '"& dropdownlist.selected.value
>&"'
>
>con i parameter come verrebbe?

dim cmd as new SqlCommand("select * from miatabella where id = @id")
cmd.Parameters.Add("@id", dropdownlist.selectedvalue)

(volendo puoi anche specificare meglio la definizione del parametro, esplicitando DataType, Lunghezza, ecc.
però comunque così dovrebbe essere sufficente)

cmd.ExecuteReader
....

Ciao, Michele

bluland Profilo | Guru

grazie provo e ti faccio sapere ..


fatto grazie funziona benissimo, devo imparare ad usare le parameter

blood Profilo | Senior Member

>dim cmd as new SqlCommand("select * from miatabella where id
>= @id")
>cmd.Parameters.Add("@id", dropdownlist.selectedvalue)
>
>(volendo puoi anche specificare meglio la definizione del parametro,
>esplicitando DataType, Lunghezza, ecc.
>però comunque così dovrebbe essere sufficente)

esatto verrebbe:

cmd.Parameters.Add("@id", SqlDbType.Decimal).Value = dropdownlist.selectedvalue)

Dove SqlDbType.Decimal è il tipo da usare ovviamente.
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