Problema salvataggio data in access in formato esteso

lunedì 06 giugno 2005 - 12.00

peppemath Profilo | Newbie

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

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

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

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

Scusa se chiedo troppo, potresti illustrarmi con un semplice esempio?

Grazie
peppemath

peppemath Profilo | Newbie

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

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

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

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

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

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

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

non so se il file allegato nel messaggio precedente sia raggiungibile?

peppemath
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5