Campi con apici o apostrofo va in errore query come risolvere?

lunedì 27 luglio 2009 - 11.32

basicdany Profilo | Expert

CIAO A TUTTI utilizzo per scrivere un record questa procedura in vb con framework 1.1:

Dim cn As New OleDbConnection(Connessione)

' Apre la connessione.
cn.Open()

' Avvia una transazione.
tr = cn.BeginTransaction(IsolationLevel.ReadCommitted)

sql = String.Format("INSERT INTO {0} (CodiceCliente,NumeroFattura,RagioneSociale) VALUES ('{1}','{2}','{3}')", tabella, CodiceCliente, NumeroFattura, RagioneSociale)

' Crea il comando per la connessione corrente.
Dim cmdInsert As New OleDbCommand(sql, cn, tr)
' Esegue il comando.
Dim Record As Integer = cmdInsert.ExecuteNonQuery()

' Conferma transazione.
tr.Commit()

SE I DATI CHE VOGLIO SALVARE HANNO DEGLI APICI O APOSTROFO LA QUERY MI GENERA UN ERRORE, COME POSSO RISOLVERE QUESTO PROBLEMA?
GRAZIE A TUTTI

SSUPERPIPPO Profilo | Guru

Ti consiglio di utilizzare i parametri:

Dim cmdInsert As New OleDbCommand

cmdInsert.CommandText="INSERT INTO (CodiceCliente,NumeroFattura,RagioneSociale) VALUES (@CodiceCliente, @NumeroFattura, @RagioneSociale)
cmdnsert.Parameters.AddWithValue("@CodiceCliente", ValoreCodiceDaInserire)
cmdnsert.Parameters.AddWithValue("@NumeroFattura", NumeroFatturaDaInserire)
cmdnsert.Parameters.AddWithValue("@RagioneSociale", RagioneSocialeDaInserire)

In questo modo eviti ogni problema con gli apostrofi o virgolette...

http://blogs.dotnethell.it/alebadalin
http://acquariochepassione.blogspot.com/

DomA Profilo | Expert

Utilizza la funzione Replace. Esempio:

RagioneSoc = Replace(me.txtRagionesociale.text, "'", "''")

questa funzione so stituisce l'apice con due apici.

e poi utilizzi RagioneSoc nella tua INSERT.

Facci sapere.

Domenico
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5