Problema data

venerdì 15 ottobre 2010 - 17.08
Tag Elenco Tags  VB.NET  |  .NET 3.5  |  Windows XP  |  Visual Studio 2008  |  Access (.mdb)  |  Crystal Reports 2008

Mau67 Profilo | Expert

Ciao al forum, nel mio database ho un campo "PERIODO" dove inserisco Mese e anno in questo modo "GIUGNO 2010" adesso dovrei selezionare in un DateTimePicker1 la data convertita da "GIUGNO 2010" a 01/06/2010 come posso fare?
Grazie

Mau67

AntCiar Profilo | Expert

ciao.

E' un po 'grezza' come soluzione ma è la prima che mi è venuta in mente.


public DateTime ConvertDate(string periodo) { DateTime res = DateTime.MinValue; try { periodo = periodo.Replace(" ", "").Trim(); string mese = periodo.Substring(0, periodo.Length - 4).ToUpper(); string anno = periodo.Substring(periodo.Length - 4); switch (mese) { case "GENNAIO": res = new DateTime(int.Parse(anno), 1, 1); break; case "FEBBRAIO": res = new DateTime(int.Parse(anno), 2, 1); break; case "MARZO": res = new DateTime(int.Parse(anno), 3, 1); break; case "APRILE": res = new DateTime(int.Parse(anno), 4, 1); break; case "MAGGIO": res = new DateTime(int.Parse(anno), 5, 1); break; case "GIUGNO": res = new DateTime(int.Parse(anno), 6, 1); break; case "LUGLIO": res = new DateTime(int.Parse(anno), 7, 1); break; case "AGOSTO": res = new DateTime(int.Parse(anno), 8, 1); break; case "SETTEMBRE": res = new DateTime(int.Parse(anno), 9, 1); break; case "OTTOBRE": res = new DateTime(int.Parse(anno), 10, 1); break; case "NOVEMBRE": res = new DateTime(int.Parse(anno), 11, 1); break; case "DICEMBRE": res = new DateTime(int.Parse(anno), 12, 1); break; default: break; } } catch (Exception) { } return res; }
Cristian Barca

Mau67 Profilo | Expert

dovendolo assegnare qui
DateTimePicker1.Text = CType(tvData.SelectedNode.Tag, DataRow)("Pagamento")
come lo colocco?
Mau67

AntCiar Profilo | Expert

Ciao. Scusa se ti ho risposto in C# ma non mi ero accorto del flag VB NET.
Ritornando a noi: il codice che ti ho mandato lo incolli nella tua form/Classe oppure in una classe di basso livello in modo da poterlo riutilizzare all'occorrenza (caso mai dichiarandolo Shared al posto di Public in modo da renderlo statico)

Nell'assegnazione vedo che valorizzi la proprietà Text del datetimePicker. Io valorizzerei direttamente la proprietà che espone il tipo DateTime. Dovrebbe essere DateTimePicker1.Date = oppure DateTimePicker1.Value (vedi un po tu qual è)

Indipendentemente da quale è basta fare:

DateTimePicker1.Date = ConvertDate(Cstr("" & CType(tvData.SelectedNode.Tag, DataRow)("Pagamento")))

ciao ciao
Cristian Barca

Mau67 Profilo | Expert

con DateTimePicker1.value funziona ottimo grazie

Ah in questo post http://www.dotnethell.it/forum/messages.aspx?ThreadID=36975
ho risolto bastava aggiungere alla if parent
If tvData.SelectedNode Is Nothing = False Then <<<<<< QUI NON FUNZIONA
If tvData.SelectedNode.Parent Is Nothing = False Then <<<<<<QUI FUNZIONA

ok grazie per l'aiuto ciao alla prossima

Mau67
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