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
[C#]Problema OleDB
mercoledì 12 settembre 2012 - 15.51
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Skin
Profilo
| Newbie
4
messaggi | Data Invio:
mer 12 set 2012 - 15:51
Buongiorno a tutti! ;)
ho un problema con database in c#..mi spiego meglio..sto creando un piccolo applicativo per la gestione (moooolto basilare) di un ufficio..quindi "Gestione Clienti", "gestione fatture" ecc ecc. Il problema viene nel form dove ci sono le label, textbox e checkbox, quando premo il button "Salva" mi esce questo errore:
"SystemData.OleDb.OleDBException(0x80040E14) Errore di Sinstassi (Operatore Mancante) nell'espressione della query 'via della frutta'. Il codice che ho utilizzato nel button è questo:
http://pastebin.com/LQ41vYJE
Dove Sbaglio??
pieroalampi
Profilo
| Expert
816
messaggi | Data Invio:
mer 12 set 2012 - 16:05
hai provato a mettere un punto di interruzione in fase di debug dopo OleDbCommand cmd per vedere cosa c'è??? prova a metterlo su cmd.ExecuteNonQuery(); cosi vedi bene quello che esiste nel punto precedente, l'errore deve essere li per forza
------------------------------------------------------
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA
------------------------------------------------------
AntCiar
Profilo
| Expert
936
messaggi | Data Invio:
mer 12 set 2012 - 16:08
Ciao.
il problema sta nel come hai scritto la stringa SQL. Praticamente passi tutti i campi di tipo testo tra degli apici singoli (apostrofo). questo fa si che se stai salvando valori con all'interno uno o più apostrofi ti va in errore (ad esempio "via dell'unità").
Per risolvere il problema devi mettere al posto degli apici singoli i doppi apici.
esempio:
OleDbConnection conn = new OleDbConnection(constring);
try
{
conn.Open();
OleDbCommand cmd = new OleDbCommand("INSERT INTO Clienti(ID,Nome,Cognome,[Data Nascita],Indirizzo,Citta,Cap,Piva,CodFiscale,Dominio) VALUES (" +'1' + "," + char.ConvertFromUtf32(34) + textBox1.Text + char.ConvertFromUtf32(34) + "," + char.ConvertFromUtf32(34) + textBox2.Text + char.ConvertFromUtf32(34) + "," + char.ConvertFromUtf32(34) + textBox3.Text + char.ConvertFromUtf32(34) + ","+ char.ConvertFromUtf32(34) + textBox4.Text + char.ConvertFromUtf32(34) + "," + char.ConvertFromUtf32(34) + textBox5.Text + char.ConvertFromUtf32(34) "," + char.ConvertFromUtf32(34) + textBox6.Text + char.ConvertFromUtf32(34) + "," + char.ConvertFromUtf32(34) + textBox7.Text + char.ConvertFromUtf32(34) + "," + char.ConvertFromUtf32(34) + textBox8.Text + char.ConvertFromUtf32(34) + "," + char.ConvertFromUtf32(34) + textBox9.Text + char.ConvertFromUtf32(34) + ");",conn);
cmd.ExecuteNonQuery();
conn.Close();
}
catch (OleDbException ex)
{
MessageBox.Show(ex.ToString());
}
Poi se vuoi fare una cosa molto più sistemata, utilizza le parametriche così ti togli da ogni problema di questo tipo
ciao
Cristian Barca
pieroalampi
Profilo
| Expert
816
messaggi | Data Invio:
mer 12 set 2012 - 16:14
AntCiar: servirebbe il tasto MI PIACE
------------------------------------------------------
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA
------------------------------------------------------
DomA
Profilo
| Expert
537
messaggi | Data Invio:
mer 12 set 2012 - 18:12
...oppure utilizzare il replace
Replace(textBox1.Text, "'", "''")
comq grazie AntCiar è un metodo che non conoscevo, anche se personalmente preferisco i parametri.
Ricorda che, accettare la risposta è un modo di ringraziare chi ci ha aiutato ed evidenziare che il problema è stato risolto.
http://www.infomidia.it
Domenico
Skin
Profilo
| Newbie
4
messaggi | Data Invio:
mer 12 set 2012 - 19:00
scusate per la tarda risposta e ringrazio tutti per le risposte che mi hanno aiutato moltissimo ;) ora nella compilazione mi appare System.data.oledb.oledbexception (0x80040E57):Overflow :/ può essere qualche tipologia di campo nel DB che è errata rispetto a quanto scritto nella textbox?
Grazie
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 !