[C#.net] Date uit een mysql database halen

Pagina: 1
Acties:
  • 154 views sinds 30-01-2008
  • Reageer

  • CR35
  • Registratie: November 2005
  • Laatst online: 12-02 14:15
Ik heb al gezocht, en dit is misschien wel een beetje domme vraag maar kom er niet uit.

ik ben bezig om een aantal records uit een database te halen maar er zit een datum tussen en dan geeft ie een fout dat de conversie van MySql.Datetime naar System.DateTime niet goed gaat, ik krijg hem zeg maar niet in de dataset.

C#:
1
2
3
4
5
6
7
8
        public DataSet ExecuteDataSet(string Query)
        {
            MySql.Data.MySqlClient.MySqlDataAdapter myDA;
            DataSet dtsData = new DataSet();
                            myDA = new MySqlDataAdapter(Query, mySQLcon);
            myDA.Fill(dtsData);
            return dtsData;
        }

en om het aan te spreken:
C#:
1
dsVoorbeeld = _connect.ExecuteDataSet(sqlVoorbeeld);

normaal werkt dit goed, maar nu dus niet(als er een datum geselecteerd moet worden).
Iemand enig id?

mvg

[ Voor 6% gewijzigd door CR35 op 15-12-2005 16:18 . Reden: code tekens, verduidelijking ]


  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

zet je code even tussen [code ] en [ /code], maakt het wat leesbaarder.

En over dat Datetime. Is het kolom type in de database wel datetime? Als ik zo op Google zoek heb ik bij de 1e zoekresultaat al te pakken dat de datetime van het type MySql.DateTime is en dat het nog omgezet moet worden. Dit gaat ongeveer zo:
C#:
1
DateTime datum = mysqldatetimedingetje.GetDateTime();
Kijk daar eens naar.

[ Voor 49% gewijzigd door eghie op 15-12-2005 16:10 ]


  • CR35
  • Registratie: November 2005
  • Laatst online: 12-02 14:15
ja, maar het maakt niet uit of het date of date/time is

  • whoami
  • Registratie: December 2000
  • Laatst online: 21-04 17:18
Wat is 'nu werkt het niet' ?
Krijg je een fout ?

https://fgheysels.github.io/


  • CR35
  • Registratie: November 2005
  • Laatst online: 12-02 14:15
Ja een hele rits aan foutmelding, maar het komt erop neer dat de conversie naar system.datetime niet lukt. Het gebeurt wanneer de gegevens in de DataAdapter zouden moeten worden geplaatst. Ik krijg dus de gegevens niet uit de database, dus kan ook niet zelf gaan converten.

  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

whoami schreef op donderdag 15 december 2005 @ 16:11:
Wat is 'nu werkt het niet' ?
Krijg je een fout ?
Als ik goed begrijp krijgt hij een conversie fout. Could not convert MySQL.DateTime to DateTime.

* eghie = Spuit 11 :X

[ Voor 7% gewijzigd door eghie op 15-12-2005 16:17 ]


  • thegve
  • Registratie: Februari 2004
  • Laatst online: 14-04 09:06
whoami schreef op donderdag 15 december 2005 @ 16:11:
Wat is 'nu werkt het niet' ?
Krijg je een fout ?
en dan geeft ie een fout dat de conversie van MySql.Datetime naar System.DateTime niet goed gaat
Dat geeft ie dus opzich wel aan ;)

  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 01-04 20:36

Not Pingu

Dumbass ex machina

Ik denk dat whoami bedoelt: bij welke datumwaardes werkt het wel, en bij welke datumwaardes gaat het nu fout? Post eens wat er in je database staat in het datumveld.

Certified smart block developer op de agile darkchain stack. PM voor info.


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 16-04 11:36

pjvandesande

GC.Collect(head);

Zijn je DateTime waardes niet null, welke waardes staan er in, is het bij elke row?

  • CR35
  • Registratie: November 2005
  • Laatst online: 12-02 14:15
In principe bij alle datum waardes. Of het nu date of Datetime is.

  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

CR35 schreef op donderdag 15 december 2005 @ 16:22:
In principe bij alle datum waardes. Of het nu date of Datetime is.
Hij bedoeld de inhoud. Niet het kolom type.

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 21-04 22:00
Ik snap je probleem niet? Ik heb het hier even uit getest maar ik kan jouw probleem zo 123 niet reproduceren.

Dit is mijn tabel:
code:
1
2
3
4
5
6
7
DROP TABLE IF EXISTS `local`.`blaat`;
CREATE TABLE  `local`.`blaat` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `datum` datetime NOT NULL default '0000-00-00 00:00:00',
  `bla` varchar(20) NOT NULL default '',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


Daarin zit 1 row met als datum "2005-07-10 00:00:00".

Mijn methode om de boel uit te lezen:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
        public DataSet FindTableContent(string table)
        {
            try
            {
                string query = "SELECT * FROM " + table;
                this.dataAdapter = new MySqlDataAdapter(query, this.connection);
                //this.dataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;

                MySqlCommandBuilder cb = new MySqlCommandBuilder(this.dataAdapter);
                DataSet ds = new DataSet("local");
                ds.Locale = CultureInfo.InvariantCulture;
    
                this.dataAdapter.FillSchema(ds, SchemaType.Source, table);
                this.dataAdapter.Fill(ds, table);
                return ds;
            }
            catch(MySqlException)
            {
                throw;
            }
        }


Aan de hand van de debugger kan ik zien dat de DataSet voor mijn datum:
- [1] {7/10/2005} System.DateTime
+ System.ValueType {System.DateTime} System.ValueType
+ Date {7/10/2005} System.DateTime

Misschien heb je hier wat aan.

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 16-04 11:36

pjvandesande

GC.Collect(head);

Probeer hem is te casten naar een DateTime object, bekijk ook is het type, dus gewoon even GetType() achter je field plakken.

  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

Ik denk eigenlijk gewoon dat er wat NULL waarden worden terug gegeven en dat hij daar mee loopt te bitchen.
Pagina: 1