AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken C# DataGridView füllen zur Laufzeit
Thema durchsuchen
Ansicht
Themen-Optionen

DataGridView füllen zur Laufzeit

Ein Thema von GuenterS · begonnen am 7. Aug 2008 · letzter Beitrag vom 11. Aug 2008
 
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#3

Re: DataGridView füllen zur Laufzeit

  Alt 11. Aug 2008, 10:58
Zitat von GuenterS:
Anscheinend muss man, wenn man auf die Unterstützung vom Studio nicht bauen kann, die Spalten manuell einfügen und auch das Feld für die Datenbindung ausfüllen.
Neeee!
Einfach irgendwo die Eigenschaft AutogenerateColumns auf true setzen.
Die ist dafür da, damit deine Design-Time Einstellungen nicht immer überschrieben werden.
Ohne Designtime macht das natürlich wenig Sinn.


Zitat:
Warum der Verbindungsaufbau aber dermaßen langsam ist, ist mir nach wie vor ein Rätsel. Ich hab die sekunden mal gezählt und komme auf 15-20 ... irgendwie nicht gerade flott.
Dein Connectionstring sieht aus als hättest du in deinem Orahome\Network\Admin keine TNSNames.ora mit den Einstellungen für deine DB hinterlegt.
Eine IP anzugeben heißt, dass er durch etliche Mögliche Settings fällt bevor er es irgendwann versucht auf die Default DB der Maschine zuzugreifen.

Eine Möglichkeit ohne TNSNames.ora siehst du in dem abstrakten Bleistift unten.
Da siehst du außerdem wie du eine Conenction kriegen kannst ohne gegen einen speziellen Provider zu kompilieren. Und wie du wo "using" nutzen kannst damit du a) nicht in Finalizer rennst und b) keine Conenction unnötig lange aufgehalten wird.
Und c) ein kleiner Tip, damit der GridView nicht so EXTREEEEM langsaaaaam ist (DoubleDBuffered ist in .Net leider protected )

Das da unten geht schneller auf als ein Maikäfer husten kann. Du kannt auch den ODP von Oracle installieren.
Der öffnet Connection signifikant schneller als die Krücke von MSFT, dafür musst du dann deine App.config anpassen um ihn nutzen zu können.


(KEIN Delphi code)
Delphi-Quellcode:
type
  DoubleBufferedDataGridView = class(DataGridView)
   protected
      method CreateHandle; override;
   end;

method DoubleBufferedDataGridView.CreateHandle;
begin
   DoubleBuffered := true;
   inherited;
end;

class method ConsoleApp.Main;
begin
   var dt := new DataTable();
   var factory := DbProviderFactories.GetFactory("System.Data.OracleClient");
   using conn := factory.CreateConnection() do
   begin
      conn.ConnectionString := "Persist Security Info=True;User ID=deinUser;Password=deinPasswort;"+
                               "Data source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)"+
                               "(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=DeineDB)))";
      conn.Open();

      using cmd := conn.CreateCommand() do
      begin
         cmd.CommandText := "select * from all_users";
         using rdr := cmd.ExecuteReader() do
            dt.Load(rdr);
      end;
   end;

   Application.EnableVisualStyles();

   using frm := new Form() do
   begin
      var dgv := new DoubleBufferedDataGridView();
      dgv.Dock := DockStyle.Fill;
      dgv.AutoSizeColumnsMode := DataGridViewAutoSizeColumnsMode.AllCells;
      dgv.AutoGenerateColumns := true;
      dgv.DataSource := dt;
      frm.Controls.Add(dgv);
      frm.ShowDialog();
   end;
end;
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz