Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Query INSERT nuonamente
giovedì 24 febbraio 2011 - 07.59
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
jekisi
Profilo
| Senior Member
460
messaggi | Data Invio:
gio 24 feb 2011 - 07:59
Salve a tutto il forum, ho nuovamente un problema con la query.
La query è scritta così:
sql = "INSERT INTO [Tabella1] (Dataconsegna, Cliente, Indirizzo, Città, Prov,Cap, Variazione, Telefono1, Fax, Email, NumeroDocumento, SerieDocumento, TipoDocumento) VALUES(" & Chr(34) & DATATextBox.Text & Chr(34) & ", " & Chr(34) & DITTATextBox.Text & Chr(34) & ", " & Chr(34) & INDIRIZZOTextBox.Text & Chr(34) & ", " & Chr(34) & CITTATextBox.Text & Chr(34) & ", " & Chr(34) & PRTextBox.Text & Chr(34) & ", " & Chr(34) & CAPTextBox.Text & Chr(34) & ", " & Chr(34) & VARIAZIONETextBox.Text & Chr(34) & ", " & Chr(34) & TELEFONO_1TextBox.Text & Chr(34) & ", " & Chr(34) & FAXTextBox.Text & Chr(34) & ", " & Chr(34) & E_MAIL_1TextBox.Text & Chr(34) & ", " & Chr(34) & NUMEROTextBox.Text & Chr(34) & ", " & Chr(34) & SERIETextBox.Text & Chr(34) & ", " & Chr(34) & TextBox1.Text & Chr(34) & ")"
Appena arrivo sul record che come Cliente ha scritto:
DI CRISTINA Natale
"Commercio Carni Bianche"
Mi da questo errore:
Errore di sintassi (operatore mancante) nell'espressione della query '"DI CRISTINA Natale "Commercio Carni Bianche""'.
Forse perche il campo contiene degli apici?
Come dovrei intervenire sulla query?
Distinti Saluti
Fabio Messina
AntCiar
Profilo
| Expert
936
messaggi | Data Invio:
gio 24 feb 2011 - 08:11
Ciao.
In generale nelle query scritte direttamente (cioè senza usare le parametriche) i campi di tipo stringa vanno passati tra apici o doppi apici.
Se sai a priori che il tuo campo non conterrà mai apici singoli (vedi il caso di un CAP che normalmente non ne contiene) puoi lasciare la convenzione:
..... '" & txt.text & "', .....
Se invece sai che il tuo campo potrà contenere l'apice, allora utilizzi come delimitatori i doppi apici (come ti ho fatto vedere nella risposta al post di ieri).
Ora se il valore che vai a scrive contiene i doppi apici sei fregato. Due sono le soluzioni:
1 - sostituire i doppi apici con due apici singoli. La query andrebbe scritta in questo modo:
...... " & chr(34) & txt.text.Replace(chr(34),"xx") & chr(34) & ", " ..........
(al posto di xx ci devi mettere due apostrofi. Non li ho messi perchè dopo non si capiva niente)
2 - riscrivere la query con le parametriche.
A te la scelta.
Ciao
Cristian Barca
jekisi
Profilo
| Senior Member
460
messaggi | Data Invio:
gio 24 feb 2011 - 16:47
Grazie mille, risolto.
sql = "INSERT INTO [Tabella1] (Dataconsegna, Cliente, Indirizzo, Città, Prov, Cap, Variazione, Telefono1, Fax, Email, NumeroDocumento, SerieDocumento, TipoDocumento) VALUES(" & Chr(34) & DATATextBox.Text & Chr(34) & ", " & Chr(34) & DITTATextBox.Text.Replace(Chr(34), "''") & Chr(34) & ", " & Chr(34) & INDIRIZZOTextBox.Text.Replace(Chr(34), "''") & Chr(34) & ", " & Chr(34) & CITTATextBox.Text.Replace(Chr(34), "''") & Chr(34) & ", " & Chr(34) & PRTextBox.Text & Chr(34) & ", " & Chr(34) & CAPTextBox.Text & Chr(34) & ", " & Chr(34) & VARIAZIONETextBox.Text.Replace(Chr(34), "''") & Chr(34) & ", " & Chr(34) & TELEFONO_1TextBox.Text & Chr(34) & ", " & Chr(34) & FAXTextBox.Text & Chr(34) & ", " & Chr(34) & E_MAIL_1TextBox.Text.Replace(Chr(34), "''") & Chr(34) & ", " & Chr(34) & NUMEROTextBox.Text & Chr(34) & ", " & Chr(34) & SERIETextBox.Text & Chr(34) & ", " & Chr(34) & TextBox1.Text & Chr(34) & ")"
Torna su
Stanze Forum
Elenco Threads
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 !