Avatar billede djhb Nybegynder
04. oktober 2005 - 13:42 Der er 2 kommentarer og
1 løsning

Opdatere et DataGrid i runtime i winform

Sidder og fifler med en kombination af et DataGrid og en søgning i en Winform, alt virker tilsyneladende som det skal,men...

Dataene vises kun for efter den første søgning, herefter sker der der ingenting, når jeg foretager en ny søgning med et nyt søgeord. Jeg kan konstatere at selve søgningen virker fint, men at DataGrid bare ikke bliver opdateret med de rigtige resultater.

Jeg kan se, jeg ikke er den første med det problem, men umiddelbart kan jeg ikke finde den rigtige løsning, har prøvet forskellige ting uden held. Har kigget en del hos http://www.datagridgirl.com, http://www.c-sharpcorner.com og selvfølgelig eksperten :)

Umiddelbart anvender, jeg et DataSet undervejs, men jeg har læst mig frem til at et DataReader objekt vil være hurtigere i praksis, så det er osse en mulighed. Funktion her kaldes, når der trykkes på knappen søg.

public void PopulateNewGrid(string [] aha)
{           
    DataSet dsSearchResults = new DataSet("SearchResults");
    DataTable resultTable = new DataTable("Kundedata");
           
    resultTable.Columns.Add("Navn");
    resultTable.Columns.Add("Adresse");
    resultTable.Columns.Add("Tlf");
        resultTable.Columns.Add("Mobiltlf");
           
    string [] seperate = new string[6];
    int b=0;

    for(int i=0;i<aha.Length;i++)
    {
        seperate[b] = aha[i];
      b++;   

      if(b==5)
      {
        resultTable.Rows.Add(seperate);
        b=0;
            i++;
      }               
    }

    dsSearchResults.Reset();
    dsSearchResults.Tables.Add(resultTable);

        DataGrid myGrid = new DataGrid();
           
    myGrid.Location = new Point (330,185);
    myGrid.Size = new Size(440,300);
    myGrid.CaptionVisible = false;

    myGrid.SetDataBinding(dsSearchResults,"Kundedata");
    this.Controls.Add(myGrid);
}

Så det jeg gerne vil vide er, hvordan opdaterer jeg DataGrid'et i runtime, og kan det evt. klares vha. et DataReader objekt?
Avatar billede bitsch Nybegynder
05. oktober 2005 - 07:29 #1
Uden at have efterforsket dit eksempel yderligere virker det lidt mystisk at du newer din grid i samme metode som populerer din tabel.
Lad din constructor newe gridden, sæt din binding en gang for alle, og pupuler derefter din tabel.
Avatar billede djhb Nybegynder
05. oktober 2005 - 10:54 #2
Det hjalp at flytte min Grid erklæring op i constructoren. Bindingen er det nødvendigt at forny, da tabellen indeholder de nye søgedata hver gang, i

resultTable.Rows.Add(seperate);

Så det har løst mit problem mht. opdateringen af selve griddet. Selve søgningen og den efterfølgende visning er osse acceptabelt hurtige til, at det kan bruges.

Skulle det give nogle problemer, at jeg fornyr bindingen under hver søgning?
Avatar billede bitsch Nybegynder
05. oktober 2005 - 11:10 #3
Glem blot din binding. Set DataSource på din grid til dit DataViw
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester