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
Programma di lettura da database access tramite oledb e visual c# wind...
giovedì 08 ottobre 2009 - 10.31
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
ANDREAR12
Profilo
| Newbie
15
messaggi | Data Invio:
gio 8 ott 2009 - 10:31
Salve sono giorni che quando vado a compilare mi da la seguente eccezione: "Tipi di dati non corrispondenti nell'espressione criterio.", oledbexception.
il codice che mi da problemi è il seguente:
private void button2_Click(object sender, EventArgs e)
{
if (dt2 == null)
{
dt2 = DateTime.Now.AddDays(-1);
}
listBox1.Items.Clear();
listBox2.Items.Clear();
listBox3.Items.Clear();
listBox4.Items.Clear();
listBox5.Items.Clear();
listBox6.Items.Clear();
string source1 = GB.geb;
DateTime dt4 = new DateTime();
dt4 = DateTime.Now;
OleDbConnection oleconn2 = new OleDbConnection(source1);
string command8 = "SELECT * FROM Tbar WHERE GIORNO >= '" + dt2.ToString() + "' AND GIORNO <='" + dt4.ToString() + "'";
oleconn2.Open();
OleDbDataAdapter da = new OleDbDataAdapter(command8, oleconn2);
DataSet ds = new DataSet();
int pippo = da.Fill(ds, "Tbar");
DataRowCollection rr = ds.Tables["Tbar"].Rows;
int count12 = ds.Tables["Tbar"].Rows.Count;
if (count12 > 0)
{
for (int i = 0; i < count12; i++)
{
listBox2.Items.Add(rr[i].ItemArray[0].ToString());
}
}
oleconn2.Close();
}
Datemi una mano che non so come uscirne fuori da questo problema.
Andrea.
fabio1985
Profilo
| Newbie
9
messaggi | Data Invio:
gio 8 ott 2009 - 11:43
ciao ANDREA12 dando una lettura veloce al codice sembra che l'errore avvenga durante la SELECT dei dati in corrispondenza di un valore di tipo datetime, effettui un cast del datetime in stringa ma nel database effetivamente esiste un datetime (e quindi dovresti rieffettuare una convert della data ma col formato corretto) di conseguenza a mio avviso il codice dovrebbe essere cambiato in questo:
string command8 = "SELECT * FROM Tbar WHERE GIORNO >= Convert(DateTime,'" + dt2.ToString("dd/MM/yyyy") + "', 105) AND GIORNO <= Convert(DateTime,'" + dt4.ToString("dd/MM/yyyy") + "', 105)";
dove nella conversione in stringa .toString(""dd/MM/yyyy"") <-- vai a specificare il tipo di formato e con la clausola CONVERT all'interno della select riconverte il valore in DateTime...
prova e fammi sapere se va bene
ANDREAR12
Profilo
| Newbie
15
messaggi | Data Invio:
gio 8 ott 2009 - 13:01
mi da errore di compilazione.
l'eccezione me la da anche se scrivo:
string command8 = "SELECT * FROM Tbar WHERE GIORNO >= '" + dt2 + "' AND GIORNO <='" + dt4 + "'";
dove dt2 e dt4 sono oggetti DateTime.
Andrea.
fabio1985
Profilo
| Newbie
9
messaggi | Data Invio:
gio 8 ott 2009 - 14:04
hai provato ad inserire la stringa che ti ho scritto sopra?
ANDREAR12
Profilo
| Newbie
15
messaggi | Data Invio:
gio 8 ott 2009 - 14:22
si ma da sempre l'eccezione, dicendo che convert non esiste nel contesto.
vi prego aiutatemi!!!
Andrea.
fabio1985
Profilo
| Newbie
9
messaggi | Data Invio:
gio 8 ott 2009 - 16:36
il progettino potresti passarmelo?
alexmed
Profilo
| Guru
1.186
messaggi | Data Invio:
gio 8 ott 2009 - 19:35
Ciao
mi sà che l'errore è dovuto all'uso degli apici.
Per le date devi usare il cancelletto
string command8 = "SELECT * FROM Tbar WHERE GIORNO >= '" + dt2.ToString() + "' AND GIORNO <='" + dt4.ToString() + "'";
string command8 = "SELECT * FROM Tbar WHERE GIORNO >= #" + dt2 + "# AND GIORNO <= #" + dt4 + "#";
Ciao
alexmed
ANDREAR12
Profilo
| Newbie
15
messaggi | Data Invio:
gio 8 ott 2009 - 23:24
Ciao.
Non da più l'eccezione ma non mi popola l'oggetto DataRowCollection rr = ds.Tables["Tbar"].Rows;
Andrea.
ANDREAR12
Profilo
| Newbie
15
messaggi | Data Invio:
gio 8 ott 2009 - 23:25
se mi mandi l'email te lo mando.
Andrea.
fabio1985
Profilo
| Newbie
9
messaggi | Data Invio:
ven 9 ott 2009 - 10:51
ok mandalo a m1h4wk@hotmail.com
ciao
fabio1985
Profilo
| Newbie
9
messaggi | Data Invio:
ven 9 ott 2009 - 14:09
ok ho visionato il progetto cmq ti consiglio di tanto in tanto di inserire qualche commento
... innazitutto non sono riuscito a capire del tutto il funzioanmento per via della fretta e per via magari del fatto che non ne conosco il meccanismo però per quanto riguarda ... l'errore la prima soluzione che ti avevo dato valeva nel caso in cui avessi un db sql però in questo caso ho visto che usi access quindi era giusta la soluzione di inserire "#" prima del valore anzichè l'apice... cmq al di là dell'errore di sintassi sembra anche che nel database tu abbia impostato un valore data utilizzato il formato data in cifre poichè utilizzi il datatimepicker ti converrebbe impostare nel db il formato data di tipo "01/01/2000" e poi estrarre dal datatime il formato ("dd/MM/yyyy") durante la select... spero di non aver sbagliato nel consigliarti vedi un pò
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 !