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
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Problema salvataggio data in access in formato esteso
lunedì 06 giugno 2005 - 12.00
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
peppemath
Profilo
| Newbie
12
messaggi | Data Invio:
lun 6 giu 2005 - 12:00
Ciao a tutti: ho il seguente problema.
Ho un database access e un 'applicazione scritta in c#: ora voglio aggiungere una nuova riga alla tabella che contiene un campo Data/Ora. Nella mia applicazione:
.....
newRow.CampoDataOra = Datetime.Now;
.....
e poi salvo la nuova riga nella datatable.
Ora il mio problema è che nella tabella del database viene salvata solo la data attuale mentre l'ora/minuti/secondi no. E' un problema di datadapter oppure di dataset o qualcos'altro?
Spero di essere stato abbastanza chiaro!!!
Grazie in anticipo a tutti!!
Ciao!!
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
lun 6 giu 2005 - 13:46
Ciao,
dovrebbe essere immagazzinato data + ora.
Hai provato ad aprire da Access il file .mdb e vedere che cosa è stato inserito ?
Assicurati di allargare la colonna perchè se no ti fa vedere solo la data.
Un consiglio è c he puoi provare ad usare il valore predefinito o di default da dentro Access mettendo come valore Now(), in quetso modo ad ogni record creato viene impostata l'ora e la data corrente.
Ciao
david
peppemath
Profilo
| Newbie
12
messaggi | Data Invio:
lun 6 giu 2005 - 14:21
Avevo già controllato nel database, ma non è un problema di allargmaneto di colonna; inoltre se inserisco manualmente la data + l'ora tutto funziona, quindi il problema sicuramente è a monte cioè è legato al datadapter oppure al dataset. Ora il consiglio che mi dai è ottimo, però il problema credo che si ri-presenterà quando dovrò fare un generico assegnamento
Datetime unMomento = new datetime(...);
riga.Data = unMomento;
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
lun 6 giu 2005 - 15:27
Comunque quello che avevi scritto è corretto, perchè con DateTime.Now viene restituito tutto data e ora.
Hai provato per caso quando assegni la data alla riga a chiamare l'overload ToString() e a formattare l'output a tuo piacere mettendo data e ora ? Magari passando uno string lo accetta.
ciao
david
peppemath
Profilo
| Newbie
12
messaggi | Data Invio:
mar 7 giu 2005 - 10:15
Scusa se chiedo troppo, potresti illustrarmi con un semplice esempio?
Grazie
peppemath
peppemath
Profilo
| Newbie
12
messaggi | Data Invio:
mer 15 giu 2005 - 17:21
Ovviamente ho privato con ToString() e non accetta un tipo string.
Se si potesse dare un formato a questo campo nel dataset che genero in maniera automatica?
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mer 15 giu 2005 - 17:37
Ti chiedo un'altra cosa che forse non ti ho chiesto.
Forse tu i dati nel DB li guardi aprendo Access ?
Se sì, non è che hai impostato come formato solo la Data ed in visualizzazione quindi vedi solo quella ?
ciao
david
peppemath
Profilo
| Newbie
12
messaggi | Data Invio:
ven 17 giu 2005 - 10:53
Si apro con Access, però ho impostato il campo Data con il formato "Data Generica | 19/06/1994 17.34.23" quindi in maniera corretta; non credo che il problema sia il database, perchè se provo ad inserire manualmente in questo campo una data con hh.mm.ss l'inserimento avviene correttamente.
CIao!!!
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
ven 17 giu 2005 - 12:28
Ciao Peppemath,
ci ho preso gusto e mi sono messo a scrivere un po' di codice questo è quello che ho prodotto ed è funzionante:
OleDbConnection conn=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\db1.mdb;User Id=;Password=;");
conn.Open();
DataSet ds=new DataSet();
OleDbDataAdapter da=new OleDbDataAdapter("SELECT * FROM Tabella1",conn);
da.Fill(ds);
OleDbCommandBuilder cb=new OleDbCommandBuilder(da);
DataRow dr=ds.Tables[0].NewRow();
dr["Nome"]="DAVID";
dr["data"]=DateTime.Now;
ds.Tables[0].Rows.Add(dr);
Console.WriteLine(ds.Tables[0].Rows.Count.ToString());
da.Update(ds);
conn.Close();
Questo è ciò che è inserito in Access:
ID Nome Data
4 DAVID 17/06/2005 12.17.37
5 DAVID 17/06/2005 12.17.37
ciao
david
peppemath
Profilo
| Newbie
12
messaggi | Data Invio:
gio 23 giu 2005 - 18:00
Scusa se rispondo così in ritardo: il mio codice è diciamo circa uguale però tu quando fai la stampa a video Console.Writeline(.....) non hai ancora aggiornata la tabella fisicamente. Prova prima a salvare a ricaricare la tabella e a verificare se effettivamente il valore che ottienei è quello desiderato.
Ciao e grazie!!!
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
ven 24 giu 2005 - 13:41
E' indifferente, perchè la console.Writeline nel codice stampa solo il numero di righe nella tabella del Dataset.
L'output chi ti ho postato solo con data e ora, l'ho copiato dal file .mdb aperto in Access !
:)
ciao
david
peppemath
Profilo
| Newbie
12
messaggi | Data Invio:
ven 24 giu 2005 - 14:48
Managgia la pupazzella :( Non riesco proprio a trovare l'errore.
Posso postarti la mia piccola applicazione con il file db e quindi potresti dargli un'occhiata?
peppemath
Profilo
| Newbie
12
messaggi | Data Invio:
mer 6 lug 2005 - 10:10
non so se il file allegato nel messaggio precedente sia raggiungibile?
peppemath
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 !