Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Prism DataSet -> DataGrid: Datumsgenauigkeit geht verloren (https://www.delphipraxis.net/101553-dataset-datagrid-datumsgenauigkeit-geht-verloren.html)

Andi1985 15. Okt 2007 13:28

Datenbank: Oracle • Version: 8 oder 10 • Zugriff über: OleDbConnection

DataSet -> DataGrid: Datumsgenauigkeit geht verloren
 
Hallo,

ich bekomme von meiner Datenbank in mein DataSet das richtige Datum:

Zitat:

ds.Tables[0].Rows[17].Item[3].ToString

ist

15.10.2007 14:24:12
wenn ich das allerdings später in mein DataGrid schmeiße

Zitat:

DataGrid1.DataSource = ds.Tables[0];
steht in der Zeile nur

Zitat:

15.10.2007
wie kann ich das beinflussen oder formatieren ?

mfg
Moggy

mkinzler 15. Okt 2007 13:30

Re: DataSet -> DataGrid: Datumsgenauigkeit geht verloren
 
Was für ein Typ hat das Feld in Delphi?

Andi1985 15. Okt 2007 13:36

Re: DataSet -> DataGrid: Datumsgenauigkeit geht verloren
 
Im späteren DataGrid ?
Ich schiebe einfach einen leeren Datagrid auf das Fomular und sage

Zitat:

DataGrid1.DataSource = ds.Tables[0];

mkinzler 15. Okt 2007 13:38

Re: DataSet -> DataGrid: Datumsgenauigkeit geht verloren
 
Dan legt er aber Spalten an, welche einen Feldtyp haben.

Andi1985 15. Okt 2007 13:43

Re: DataSet -> DataGrid: Datumsgenauigkeit geht verloren
 
Zitat:

ds.Tables[0].Rows[17].Item[3]
ist vom Type

Zitat:

DateTime

mkinzler 15. Okt 2007 13:45

Re: DataSet -> DataGrid: Datumsgenauigkeit geht verloren
 
Und die Spalte im Grid?

Andi1985 15. Okt 2007 13:48

Re: DataSet -> DataGrid: Datumsgenauigkeit geht verloren
 
mit
Zitat:

ShowMessage(DataGrid2.Item[17,3].ToString);
bekomme ich auch das gewünschte Ergebniss

Zitat:

15.10.2007 14:24:12
ich weiss nicht wie ich direkt an den DatenTyp komme, aber das Datum stimmt ja so,
nur halt in der Anzeige steht nur das Datum...

EDIT:
Zitat:

ShowMessage(DataGrid2.Item[17,3].GetType.ToString);
ist
Zitat:

System.DateTime

mkinzler 15. Okt 2007 14:09

Re: DataSet -> DataGrid: Datumsgenauigkeit geht verloren
 
Bist du dir sicher das Win32 richtig ist? Sieht mehr nach .Net (WinForms) aus.

Andi1985 15. Okt 2007 14:22

Re: DataSet -> DataGrid: Datumsgenauigkeit geht verloren
 
ja, du hast recht, sorry :(

die Komponente ist

Zitat:

System.Windows.Forms.DataGrid

Andi1985 15. Okt 2007 14:55

Re: DataSet -> DataGrid: Datumsgenauigkeit geht verloren
 
Delphi-Quellcode:
myStyle := DataGridTableStyle.Create;
        myStyle.MappingName := ds.Tables[0].TableName;
        myStyle.PreferredColumnWidth := 175;
        myStyle.BackColor := Color.LightGray;

        TextBoxColumn := DataGridTextBoxColumn.Create;
        TextBoxColumn.Width := 175;
        TextBoxColumn.MappingName := ds.Tables[0].Columns[0].ToString;
        TextBoxColumn.HeaderText := 'TEST';

        myStyle.GridColumnStyles.Add(TextBoxColumn);

        TextBoxColumn := DataGridTextBoxColumn.Create;
        TextBoxColumn.Format := 'g';
        TextBoxColumn.Width := 175;
        TextBoxColumn.MappingName := ds.Tables[0].Columns[1].ToString;
        TextBoxColumn.HeaderText := 'TEST';

        myStyle.GridColumnStyles.Add(TextBoxColumn);

        TextBoxColumn := DataGridTextBoxColumn.Create;
        TextBoxColumn.Format := 'g';
        TextBoxColumn.Width := 175;
        TextBoxColumn.MappingName := ds.Tables[0].Columns[2].ToString;
        TextBoxColumn.HeaderText := 'TEST';

        myStyle.GridColumnStyles.Add(TextBoxColumn);

        TextBoxColumn := DataGridTextBoxColumn.Create;
        TextBoxColumn.Format := 'g';
        TextBoxColumn.Width := 175;
        TextBoxColumn.MappingName := ds.Tables[0].Columns[3].ToString;
        TextBoxColumn.HeaderText := 'TEST';

        myStyle.GridColumnStyles.Add(TextBoxColumn);
ich habs jetzt so gelöst das ich jedem Column einzelt einen Style vergebe, ziemlich umständlich...

mfg
Moggy

Elvis 15. Okt 2007 17:27

Re: DataSet -> DataGrid: Datumsgenauigkeit geht verloren
 
Zitat:

Zitat von Mogtar
ich habs jetzt so gelöst das ich jedem Column einzelt einen Style vergebe, ziemlich umständlich...

Haben DataSets und das alte DataGrid so an sich.
Probiere das DataGridView aus .Net 2.0, aber da wist du mit neueren .Net versionen wohl etwas verlassen im Regen stehen...
Theoretisch könntest du im Designer vom alten DataGrid auch TablesStyles definieren, einen pro DataTable-Namen.
Es ist aber immer noch ein absolut furchtbares Control. (Fast so grauenvoll wie das DBGrid in Delphi32)
Ich glaube es gab damals auch für 1.1 eine Kreuzung aus gebundenem Grid und Listview, vielleicht findest du es immer noch. (.Net 1.1 ist schon seit ein paar Jährchen Geschichte...)

Andi1985 16. Okt 2007 07:33

Re: DataSet -> DataGrid: Datumsgenauigkeit geht verloren
 
beim developer studio 2006 ist aber standmäßig nur das DotNet Packet 1.1 installiert richtig?
wie richtige ich den gemütlich dafür DotNet 2.0 ein ?

mfg
Moggy

mkinzler 16. Okt 2007 07:36

Re: DataSet -> DataGrid: Datumsgenauigkeit geht verloren
 
So einfach garnicht. Man kann zwar die assemblies umbiegen. Für .Net2-Features benötigst du allerdings CRS2007.

Bernhard Geyer 16. Okt 2007 07:36

Re: DataSet -> DataGrid: Datumsgenauigkeit geht verloren
 
Zitat:

Zitat von Mogtar
beim developer studio 2006 ist aber standmäßig nur das DotNet Packet 1.1 installiert richtig?
wie richtige ich den gemütlich dafür DotNet 2.0 ein ?

Gar nicht BDS 2006 ist für .NET 1.1 ausgelegt und du bekommst niemals .NET 2.0 Unterstützung in die IDE.
Und Delphi + WinForms ist es eine Sackgasse. Mit der 2007er-Version ist die WinForms-IDE-Unterstützung gestorben. Über längere Zeit wird zwar auch bei MS WinForms stebern, aber das wird noch ein paar Versionen dauern.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz