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
Errore in query
giovedì 17 maggio 2007 - 13.25
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
jekisi
Profilo
| Senior Member
460
messaggi | Data Invio:
gio 17 mag 2007 - 13:25
Salve a tutto il forum, avrei il seguente problema:
Ho una lista di documenti in una datagridview, premendo un button dovrei modificare alcuni valori, cioè:
Il campo Fatturata dovrei cambiarlo da S a N
Nel campo Fattura dovrei togliere il valore.
Ho provato ad eseguire questa query:
Cn.Open()
sql = "UPDATE TDDT SET FATTURATA='N', fattura='' WHERE DDT=" & DDTTextBox1.Text
cmd = New OleDb.OleDbCommand(sql, Cn)
dr = cmd.ExecuteReader
Cn.Close()
solo che mi da il seguente errore:
Tipi di dati non corrispondenti nell'espressione criterio.
781x384
49Kb
Qualcuno sa dirmi dove sbaglio?
Distinti Saluti Fabio Messina
us01739
Profilo
| Expert
641
messaggi | Data Invio:
gio 17 mag 2007 - 13:35
I campi fattura e fatturata sono giusti? ... e di che tipo sono nel database?
Bye Bye
---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
http://www.robertogelmini.com
---------------------------------------------------
the_follet
Profilo
| Newbie
46
messaggi | Data Invio:
gio 17 mag 2007 - 13:48
Ciao,
nella tua istruzione SQL:
sql = "UPDATE TDDT SET FATTURATA='N', fattura='' WHERE DDT=" & DDTTextBox1.Text
dopo la clausola (WHERE DDT =) passi un valore stringa (DDtTextBox1.text), ma non hai inserito correttamente gli apici, per cui l'istruzione SQL lo interpreta come valore numerico e ti dà l'errore di Type Mismatch.
(presumo che nel DB tu abbia impostato il campo DDT come tipo testo)
Se è come immagino, risolvi in questo modo:
- dopo <DDT => devi mettere prima un apice singolo, poi i doppi apici. A questo punto puoi inserire il valore della stringa, ed alla fine devi richiudere l'apice singolo. Il risultato è:
sql = "UPDATE TDDT SET FATTURATA = 'N', fattura = '' WHERE DDT = '" & DDTTextBox1.Text & "'"
Non è proprio leggibilissimo, te lo traduco:
- apice doppioapice & DDTTextBox1.Text & doppioapice apice doppioapice
Spero così vada meglio, rispondi se ti crea ancora problemi (ma non credo).
Ciao.
Luca
jekisi
Profilo
| Senior Member
460
messaggi | Data Invio:
gio 17 mag 2007 - 13:57
Ciao, niente da fare, sempre lo stesso errore.
I campi sono:
DDT = NUMERICO
FATTURA = NUMERICO
FATTURATA = TESTO
us01739
Profilo
| Expert
641
messaggi | Data Invio:
gio 17 mag 2007 - 14:00
Se fattura è numerico, il problema è che utilizzi gli apici. Prova a toglierli e facci sapere.
Bye Bye
---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
http://www.robertogelmini.com
---------------------------------------------------
jekisi
Profilo
| Senior Member
460
messaggi | Data Invio:
gio 17 mag 2007 - 14:06
sql = "UPDATE TDDT SET FATTURATA='N', fattura= WHERE DDT=" & DDTTextBox1.Text
Ma così non va nemmeno
us01739
Profilo
| Expert
641
messaggi | Data Invio:
gio 17 mag 2007 - 14:09
Certo, così non và perchè un valore lo devi inserire:
sql = "UPDATE TDDT SET FATTURATA='N', fattura=50 WHERE DDT=" & DDTTextBox1.Text
Riprova.
Bye Bye
---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
http://www.robertogelmini.com
---------------------------------------------------
jekisi
Profilo
| Senior Member
460
messaggi | Data Invio:
gio 17 mag 2007 - 14:16
Ma scusa, ma se io il valore del campo fattura devo toglierlo
Fatturata=N
Fattura=
Come dovrebbe essere allora questa query= Quale apici devo togliere?
us01739
Profilo
| Expert
641
messaggi | Data Invio:
gio 17 mag 2007 - 14:20
Non avevo capèito che dovevi toglierlo:
come prima cosa devi impostare sulla tabella che per quel campo sono consentiti valori nulli, dopo di che prova cosi:
sql = "UPDATE TDDT SET FATTURATA='N', fattura= dbnull WHERE DDT=" & DDTTextBox1.Text
Bye Bye
---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
http://www.robertogelmini.com
---------------------------------------------------
jekisi
Profilo
| Senior Member
460
messaggi | Data Invio:
gio 17 mag 2007 - 14:27
Niente da fare
sql = "UPDATE TDDT SET FATTURATA='N', fattura= dbnull WHERE DDT=" & DDTTextBox1.Text
da questo errore:
Nessun valore specificato per alcuni parametri necessari.
us01739
Profilo
| Expert
641
messaggi | Data Invio:
gio 17 mag 2007 - 14:42
Ho voluto provarla facendo una prova con il QA perchè mi sembra impossibile che non vada ancora.
Così a me funziona:
sql = "UPDATE TDDT SET FATTURATA='N', fattura=null WHERE DDT=" & DDTTextBox1.Text
Bye Bye
---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
http://www.robertogelmini.com
---------------------------------------------------
jekisi
Profilo
| Senior Member
460
messaggi | Data Invio:
gio 17 mag 2007 - 14:47
Adesso va, solo che prima avevi detto dbnull no null
Grazie tante per l' aiuto
us01739
Profilo
| Expert
641
messaggi | Data Invio:
gio 17 mag 2007 - 14:47
Mea culpa!
Bye Bye
---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
http://www.robertogelmini.com
---------------------------------------------------
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 !