Toon posts:

[delphi8] Refresh van een datagrid

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hey hallo,

Vooropgesteld: voor de echte die-hards is mijn vraag waarschijnlijk erg makkelijk, maar ik ben tot hier gekomen zonder cursus oid en kom helaas hier niet uit :(

ik heb een kleine app geschreven die connectie maakt met een MS-SQL2000 db.
Via een zoekfunctie kun je in deze db een film opzoeken.
Vervolgens geeft hij in de datagrid een filmnaam en de overige info via tekstboxen (zoals regiseur, jaar, acteurs). Echter, als ik bijv. "Spi" invul, krijg ik netjes spiderman terug als film. (ook in de datagrid). Wanneer ik nu een nieuwe zoek opdracht geef, bijv "Mino" voor Minority Report, geven de tekstboxen wel de data aan van de nieuwe zoek opdracht, de grid blijft echter compleet LEEG!

Weet iemand wat ik verkeerd doe?

Hierbij mijn code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
begin
  Datagrid1.Datasource := Nil; //datasource leegmaken
  DataSet2.Reset; //Dataset resetten
  Datagrid1.Refresh;  //refresh van de grid
  Label1.Show;
  Label2.Show;
  Textbox2.show;
  Textbox3.show;
  Textbox5.Show;

  sqldyn1 := 'Select d.director_name AS dirname,
   m.movie_id AS movie_id,
   m.movie_name AS movname,
      m.movie_year AS movyear, 
      m.movie_plot AS movie_plot FROM t_movies m, t_director d 
         where m.movie_name LIKE ''%' + TextBox1.Text + '%'' 
         AND m.movie_director = d.director_id';

  BdpDataAdapter2.SelectCommand.Connection := BdpConnection1;
  BdpDataAdapter2.SelectCommand.CommandText := sqldyn1;
  BdpDataAdapter2.Fill(DataSet2,'film');
  Datagrid2.Datasource := DataSet2;
  Datagrid2.Datamember := 'film';
  movie_id := DataSet2.Tables['film'].Rows.Item[0].Item['movie_id'].ToString;

  sqldyn2 := 'Select m.movie_name AS moviename, m.movie_id AS movie_id
                 FROM t_movies m where m.movie_id = '+ movie_id;
  BdpDataAdapter3.SelectCommand.Connection:= BdpConnection1;
  BdpDataAdapter3.SelectCommand.CommandText := sqldyn2;
  BdpDataAdapter3.Fill(DataSet2,'filmnaam');

  Datagrid1.Datasource := DataSet2;
  Datagrid1.Datamember := 'filmnaam';
  Datagrid1.refresh;  //wellicht deed ik mijn update op het verkeerde moment - nee
 
  label3.text := DataSet2.Tables['filmnaam'].Rows.Item[0].Item['moviename'].ToString;;
  Textbox2.text := DataSet2.Tables['film'].Rows.Item[0].Item['dirname'].ToString;
  Textbox3.text := DataSet2.Tables['film'].Rows.Item[0].Item['movyear'].ToString;
  Textbox5.text := DataSet2.Tables['film'].Rows.Item[0].Item['movie_plot'].ToString;
end;


Nogmaals, misschien voor de goeroe's hier een eitje, maar deze n00b komt er niet uit ;)

[ Voor 20% gewijzigd door Verwijderd op 08-11-2004 18:21 ]


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 15:08

mulder

ik spuug op het trottoir

Moet je iets van Datagrid1.Bind() doen?

oogjes open, snaveltjes dicht


Verwijderd

Topicstarter
Don Facundo schreef op 09 november 2004 @ 10:31:
Moet je iets van Datagrid1.Bind() doen?
Sorry, ik was inderdaad vergeten te zeggen dat dit een VCL-form is,
daar kent ie alleen Databindings.... maar dat is volgens mij niet de tegenhanger van de webform variant databind ?