Einzelnen Beitrag anzeigen

Elvis

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

Re: DataGridView füllen zur Laufzeit

  Alt 11. Aug 2008, 15:38
Bevor wir weitermachen, 2 ganz kurze Sachen.
Wenn du die beantwortest hastm können wir dann weitermachen.
  • Schaue mal in die Serviceliste deines Rechners.
    Du suchst nach einem Dienst Namens "OracleService%", wobei % der Name der Datenbank ist.
  • Du solltest unter "DbProviderFactories" ein gelbes Bälkchen sehen.
    Wenn du nun ctrl+"." drückt oder drauf klickst, siehst du ein Menü mit dem du den Namespace in die usings werfen kannst.
    Die 2 interessanten Namespaces sind:
    • System.Data
    • System.Data.Common

Hier ist die C# verison:
Code:
class Program
{
  static void Main(string[] args)
  {
    DataTable dt = new DataTable();
    DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OracleClient");
    using (IDbConnection conn = factory.CreateConnection())
    {
      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 (IDbCommand cmd = conn.CreateCommand())
      {
        cmd.CommandText = "select * from all_users";
        using (IDataReader rdr = cmd.ExecuteReader())
          dt.Load(rdr);

      }
    }

    System.Windows.Forms.Application.EnableVisualStyles();

    using (System.Windows.Forms.Form frm = new System.Windows.Forms.Form())
    {
      DoubleBufferedDataGridView dgv = new DoubleBufferedDataGridView();
      dgv.Dock = System.Windows.Forms.DockStyle.Fill;
      dgv.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells;
      dgv.AutoGenerateColumns = true;
      dgv.DataSource = dt;
      frm.Controls.Add(dgv);
      frm.ShowDialog();
    }
  }
}

class DoubleBufferedDataGridView : System.Windows.Forms.DataGridView
{
  protected override void CreateHandle()
  {
    DoubleBuffered = true;
    base.CreateHandle();
  }
}
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