AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Datagrid

Ein Thema von HomerGER · begonnen am 25. Jul 2005 · letzter Beitrag vom 26. Jul 2005
Antwort Antwort
Benutzerbild von HomerGER
HomerGER

Registriert seit: 9. Jun 2003
390 Beiträge
 
Delphi 7 Professional
 
#1

Datagrid

  Alt 25. Jul 2005, 16:41
Hallo
wie kann ich den Inhalt meines Datagrid löschen bzw clear?

Delphi-Quellcode:
//Style DataGrid übergeben
DataGrid1.TableStyles.Clear;
DataGrid1.TableStyles.Add(style1);

//Daten übergeben
DataGrid1.DataSource := g_c_medien_dt;
ich habe den Code in einer Mdi Form
immer wenn ich die Form aufrufe hängt er die daten nur hinten dran


DataGrid1.DataSource := NIL;
DataGrid1.DataBindings.Clear;
bringt keinen Erfolgt



Hat jemand weisheit?
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#2

Re: Datagrid

  Alt 25. Jul 2005, 17:51
Du mußt nicht das DataGrid leeren sondern die DataSource (g_c_medien_dt), bzw. einzelne Tabellen da drin! In etwa so:
Delphi-Quellcode:
    if ((dataset1.Tables <> NIL) AND
       (dataset1.Tables.Contains('tabelle')))
       THEN dataset1.Tables['tabelle'].Clear();
  Mit Zitat antworten Zitat
Benutzerbild von HomerGER
HomerGER

Registriert seit: 9. Jun 2003
390 Beiträge
 
Delphi 7 Professional
 
#3

Re: Datagrid

  Alt 25. Jul 2005, 20:34
Hallo
ich dachte ich könnte den Inhalt im Datagrid löschen ohne mein Dataset oder Datatable anzufassen
weil sonst mus ich den Inhalt wieder neu reinladen
ich lade aber nur einmal - Beim OnLoad

warum löscht er denn nicht den Inhalt wenn DataGrid.DataSource NIL zu weise?
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#4

Re: Datagrid

  Alt 25. Jul 2005, 20:46
Das ist ähnlich wie beim DBGrid, es wird der Inhalt das Datasets angezeigt!
  Mit Zitat antworten Zitat
Benutzerbild von HomerGER
HomerGER

Registriert seit: 9. Jun 2003
390 Beiträge
 
Delphi 7 Professional
 
#5

Re: Datagrid

  Alt 25. Jul 2005, 22:51
das hilft aber nicht weiter
wenn ich der datasource NIL zuweise sollte das DataGrid nix anzeigen
und nicht bei neuen zuweisen der datasource alle daten nur dranhängen.
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#6

Re: Datagrid

  Alt 25. Jul 2005, 23:07
Zitat von HomerGER:
das hilft aber nicht weiter
wenn ich der datasource NIL zuweise sollte das DataGrid nix anzeigen
und nicht bei neuen zuweisen der datasource alle daten nur dranhängen.
Macht es doch gar nicht.
Du hast sicher einfach nur Werte an deine Daten angehängt, das Grid stellt die Daten in der Source dar, nicht mehr und nicht weniger.
  Mit Zitat antworten Zitat
Benutzerbild von HomerGER
HomerGER

Registriert seit: 9. Jun 2003
390 Beiträge
 
Delphi 7 Professional
 
#7

Re: Datagrid

  Alt 26. Jul 2005, 08:33
ich glaube nicht das ich werte dranhänge

hier mal ein bisschen Code

Ich habe eine Parent Form
hier wird bei OnLoad
das ausgeführt
Delphi-Quellcode:
Procedure Medien_DA_Erzeugen_DBC();
var
sel_s : String;
upd_cmd : OleDbCommand;
upd_par : OleDbParameter;
ins_cmd : OleDbCommand;
ins_par : OleDbParameter;
del_cmd : OleDbCommand;
del_par : OleDbParameter;
begin

//Select
  //Select String
  sel_s := 'SELECT * FROM GFC_Medien';

  //Daten aus der DB holen
  g_c_medien_da := OleDbDataAdapter.Create(sel_s, gf_conn);

//Update
  //Update Command
  upd_cmd := OleDbCommand.Create();
  upd_cmd.CommandType := CommandType.StoredProcedure;
  upd_cmd.CommandText := 'GFC_M_UPDATE';
  upd_cmd.Connection := gf_conn;

  upd_cmd.Parameters.Clear;
  upd_cmd.Parameters.Add('@GFC_M_NAME', OleDbType.VarWChar, 100, 'GFC_M_NAME');
  upd_cmd.Parameters.Add('@GFC_M_AKTIV', OleDbType.Boolean, 1, 'GFC_M_AKTIV');
  upd_cmd.Parameters.Add('@GFC_M_OUT', OleDbType.Boolean, 1, 'GFC_M_OUT');
  upd_cmd.Parameters.Add('@GFC_M_USER_NAME', OleDbType.VarWChar, 50, 'GFC_M_USER_NAME');
  upd_cmd.Parameters.Add('@GFC_M_USER_TXT', OleDbType.LongVarWChar, 16, 'GFC_M_USER_TXT');
  upd_cmd.Parameters.Add('@GFC_M_USER_DATE', OleDbType.DBTimeStamp, 4, 'GFC_M_USER_DATE');

  upd_par := upd_cmd.Parameters.Add('@ID', OleDbType.Integer);
  upd_par.SourceColumn := 'ID';
  upd_par.SourceVersion := DataRowVersion.Current;

//Insert
  //Insert Command
  ins_cmd := OleDbCommand.Create();
  ins_cmd.CommandType := CommandType.StoredProcedure;
  ins_cmd.CommandText := 'GFC_M_INSERT';
  ins_cmd.Connection := gf_conn;

  ins_cmd.Parameters.Clear;
  ins_cmd.Parameters.Add('@GFC_M_NAME', OleDbType.VarWChar, 100, 'GFC_M_NAME');
  ins_cmd.Parameters.Add('@GFC_M_AKTIV', OleDbType.Boolean, 1, 'GFC_M_AKTIV');
  ins_cmd.Parameters.Add('@GFC_M_OUT', OleDbType.Boolean, 1, 'GFC_M_OUT');
  ins_cmd.Parameters.Add('@GFC_M_USER_NAME', OleDbType.VarWChar, 50, 'GFC_M_USER_NAME');
  ins_cmd.Parameters.Add('@GFC_M_USER_TXT', OleDbType.LongVarWChar, 16, 'GFC_M_USER_TXT');
  ins_cmd.Parameters.Add('@GFC_M_USER_DATE', OleDbType.DBTimeStamp, 4, 'GFC_M_USER_DATE');

  ins_par := ins_cmd.Parameters.Add('@Identity', OleDbType.Integer, 4, 'ID');
  ins_par.Direction := System.Data.ParameterDirection.Output;
  ins_par.SourceColumn := 'ID';
  ins_par.SourceVersion := DataRowVersion.Current;

//Delete
  //Delete Command
  del_cmd := OleDbCommand.Create();
  del_cmd.CommandType := CommandType.StoredProcedure;
  del_cmd.CommandText := 'GFC_M_DELETE';
  del_cmd.Connection := gf_conn;

  del_cmd.Parameters.Clear;
  del_par := del_cmd.Parameters.Add('@ID', OleDbType.Integer, 4, 'ID');
  del_par.SourceColumn := 'ID';
  del_par.SourceVersion := DataRowVersion.Original;

  //Commands übergeben
  g_c_medien_da.UpdateCommand := upd_cmd;
  g_c_medien_da.InsertCommand := ins_cmd;
  g_c_medien_da.DeleteCommand := del_cmd;

  //Daten ins Dataset
  gf_conn.Open;
  g_c_medien_da.Fill(g_c_dataset_ds, 'GFC_Medien');
  gf_conn.Close;

  //DataTable laden
  g_c_medien_dt := g_c_dataset_ds.Tables['GFC_Medien'];
end;
in der Mdi Form
als erstes alle Mdi Form close
dann auch hier im OnLoad
Delphi-Quellcode:
Procedure DataGrid1_Binden_C1();
var
style1 : DataGridTableStyle;
textboxcol1 : DataGridTextBoxColumn;
textboxcol2 : DataGridTextBoxColumn;
textboxcol3 : DataGridTextBoxColumn;
textboxcol4 : DataGridTextBoxColumn;
begin
  //DataGrid löschen
  C1.DataGrid1.DataSource := NIL;
  C1.DataGrid1.DataBindings.Clear;

  //Style1 erzeugen
  style1 := DataGridTableStyle.Create;
  style1.MappingName := 'GFC_Medien';
  style1.RowHeaderWidth := 10;

  //Style1 Farbe
  style1.AlternatingBackColor := System.Drawing.Color.LightSteelBlue;

  //TextCol1 GFC_M_ID
  textboxcol1 := DataGridTextBoxColumn.Create;
  textboxcol1.MappingName := 'GFC_M_ID';
  textboxcol1.HeaderText := 'Nr.';
  textboxcol1.Width := 50;

  //TextCol2 GFC_M_NAME
  textboxcol2 := DataGridTextBoxColumn.Create;
  textboxcol2.MappingName := 'GFC_M_NAME';
  textboxcol2.HeaderText := 'Name';
  textboxcol2.Width := 300;

  //TextCol3 GFC_M_USER_NAME
  textboxcol3 := DataGridTextBoxColumn.Create;
  textboxcol3.MappingName := 'GFC_M_USER_NAME';
  textboxcol3.HeaderText := 'geändert von';
  textboxcol3.Width := 200;

  //TextCol4 GFC_M_USER_DATE
  textboxcol4 := DataGridTextBoxColumn.Create;
  textboxcol4.MappingName := 'GFC_M_USER_DATE';
  textboxcol4.HeaderText := 'geändert am';
  textboxcol4.Width := 120;

  //Zum Style hinzufügen
  style1.GridColumnStyles.Clear;
  style1.GridColumnStyles.Add(textboxcol1);
  style1.GridColumnStyles.Add(textboxcol2);
  style1.GridColumnStyles.Add(textboxcol3);
  style1.GridColumnStyles.Add(textboxcol4);

  //Style DataGrid übergeben
  C1.DataGrid1.TableStyles.Clear;
  C1.DataGrid1.TableStyles.Add(style1);

  //Daten übergeben
  C1.DataGrid1.DataSource := g_c_medien_dt; <---------------------------

wenn ich jetzt das erstmal die Mdi öffne, ist alles Ok, es stehen im Datagrid 10 datensätze
schliesse ich sie wieder und öffne sie neu, stehen im DataGrid jetzt 20 datensätze
beim nächsten öfnen 30 usw.

er hängt immer wieder nur die datensätze an das Grid an
  Mit Zitat antworten Zitat
Benutzerbild von HomerGER
HomerGER

Registriert seit: 9. Jun 2003
390 Beiträge
 
Delphi 7 Professional
 
#8

Re: Datagrid

  Alt 26. Jul 2005, 08:46
Asche auf mein Haupt
Natürlich hast du recht gehabt
war ein bischen eingefahren
in der Function um alle Mdi zu schliesen war ein Aufruf die Daten neu einzulesen
damit hat er sie immer neu ins dataset drangehängt


Vielen Dank für den Tritt in den Hintern
manchmal hilft es

Homer
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#9

Re: Datagrid

  Alt 26. Jul 2005, 09:09
Warum benutzt du überhaupt .Net?
Dein Code sieht aus, als ob du dbExpress in Win32 benutzt, außerdem hast du lose Prozeduren und Globale Variablen.
Das da ist IMHO kein .Net Code, und wenn man so programmiert brngt einem .Net keinerlei Vorteile gegenüber der Win32 VCL, die ja mehr auf solche Quick'nDirty Sachen ausgelegt ist.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf