Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Prism DataGrid + Änderungen? (https://www.delphipraxis.net/92738-datagrid-aenderungen.html)

ConTaCt 25. Mai 2007 07:45


DataGrid + Änderungen?
 
Hi

Ich habe eine Datenbank, die erscheint in einem DataGrid, klicke ich in der datenbank einen Namen an, verändere Buchstaben, Zahlen oder sonst irgendetwas, klicke auch ändern, passiert nichts? Warum nicht, hier der code:

Delphi-Quellcode:
procedure TWinForm.btnChange_Click(sender: System.Object; e: System.EventArgs);
begin
  if (txtVorN.Text = '') or (txtZuN.Text = '') or (txtClass.Text = '') then
  begin
    MessageBox.Show('Eingabe fehlerhaft.','Fehler',MessageBoxButtons.OK,MessageBoxIcon.Error);
    txtVorN.Focus;
    exit;
  end
  else
  begin
    v_strSQL:= 'Update Schueler set Vorname = ''' + txtVorN.Text + ''', Zuname = ''' + txtZuN.Text + ''', Klasse = '+ txtClass.Text + ' where SchuelerID = ' + cboPK.Text;
    grdSchueler.Refresh;
  end;
end;
dieses "grdSchueler.Refresh;" funktionier nicht, die Datenbank im Datagrid wird nicht aktualisiert!? Bitte um Hilfe!

Fridolin 25. Mai 2007 08:14

Re: DataGrid + Änderungen?
 
Hallo Contact,

Könnte es sein, dass du den Query nicht ausführst? Muss es vielleicht heißen:

Delphi-Quellcode:
  begin
    v_strSQL:= 'Update Schueler set Vorname = ''' + txtVorN.Text + ''', Zuname = ''' + txtZuN.Text + ''', Klasse = '+ txtClass.Text + ' where SchuelerID = ' + cboPK.Text;

v_strSql.Excecute;

    grdSchueler.Refresh;
  end;
Mfg Fridolin

ConTaCt 25. Mai 2007 08:24

Re: DataGrid + Änderungen?
 
wenn ich das so schreibe wie gut

gibt er mir genau in der "v_strSql.Excecute;" Zeile die Meldung:

'string' does not contain a member named 'Execute' at line 429


und jetzt? die meldung hatte ich noch nie ...

dfried 25. Mai 2007 08:35

Re: DataGrid + Änderungen?
 
Zitat:

Zitat von ConTaCt
wenn ich das so schreibe wie gut

gibt er mir genau in der "v_strSql.Excecute;" Zeile die Meldung:

'string' does not contain a member named 'Execute' at line 429


und jetzt? die meldung hatte ich noch nie ...

v_strsql ist ja auch vermutlich eine String-Variable. Du musst den erzeugten SQL natürlich deiner Query zuweisen und dann das Execute auf die Query machen.

Delphi-Quellcode:
query.sql.text := v_strSQL;
query.Execute;

ConTaCt 25. Mai 2007 08:42

Re: DataGrid + Änderungen?
 
und wo muss ich diesen codeteil jetzt hinzufügen? (bitte genaue beschreibung)

kenne mich mit dem ganzen noch net aus! sry

DeddyH 25. Mai 2007 08:46

Re: DataGrid + Änderungen?
 
Hallo,

das muss vor die Zeile
Delphi-Quellcode:
grdSchueler.Refresh;

Fridolin 25. Mai 2007 09:42

Re: DataGrid + Änderungen?
 
Du hasst in deinem Quellcode eine Procedur Namens "ExecCommand". Diese musst du nur nach deiner SQL-Anweisung aufrufen, indem du schreibst:

Delphi-Quellcode:
begin
    v_strSQL:= 'Update Schueler set Vorname = ''' + txtVorN.Text + ''', Zuname = ''' + txtZuN.Text + ''', Klasse = '''+ txtClass.Text + ''' where SchuelerID = ''' + cboPK.Text + ''' ';

ExecCommand;

    grdSchueler.Refresh;
  end;
(musst du auch beim hinzufügen machen...)

Habe dir aber auch den geänderten Quellcode per PM geschickt.
Hoffe es funzt jetzt...

MfG

Elvis 25. Mai 2007 09:48

Re: DataGrid + Änderungen?
 
Ändere bitte die Sprache zurück auf Delphi.Net. Ansonsten wirst du weiterhin, für dich nutzlose, Tips bekommen, die auf native Delphi abzielen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:34 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