Avatar billede Max Novice
30. januar 2006 - 14:56 Der er 4 kommentarer og
1 løsning

DataGridViewRow og DataRow konvertering

Hej igen.

Hvor for virker flg. ikke og hvad skal jeg gøre for at få det til at virke?

DataTable dt = new DataTable();
// tilføjer columns her
DataRow dr = dt.NewRow();
// tilføjer værdier til row her
dt.Rows.Add(dr);
DataGridViewRow dgvr = new DataGridViewRow();
dgvr.SetValues(dr);
dgv.Rows.Add(dgvr);
// DataGridView'et dgv er oprettet design time
dt.AcceptChanges();

Den melder inden fejl, den fylder bare (nu bliver skidtet så kørt i en løkke) mit DataGridView med en masse ingenting, men ikke værdierne fra mine DataRows (dr).

Håber I kan hjælpe.
Mvh.
/Mnc
Avatar billede peter_svendsen Nybegynder
30. januar 2006 - 15:14 #1
Jeg ved ikke lige hvad dit niveau er (mit eget er ikke i top), og kan ikke lige se hvad der går galt i din kode.
Er der en speciel årsag til at du ikke bare sætter datagrid source lig med datatable eller dataview af datatable hvis der skal justeres på noget.

Hvis det ikke må hænge direkte sammen med datable kan der med fordel bruges Copy eller Clone.
Avatar billede Max Novice
30. januar 2006 - 15:22 #2
Mit niveau er absolut heller ikke i top, jeg er skiftet fra Delphi (den gamle! ;) over til C# i .NET 2.0, og der er en verden til forskel.

I starten havde jeg faktisk også bare lavet det nogenlunde sådan her:

// blablabla tilføjer en masse rows til dt hér
DataGridView.Source = dt;
// .. og kan ikke lige huske om jeg gjorde noget for at binde data'ene
// men det mener jeg ikke..

Men problemet er, at løkken er så lang, at man fejlagtigt kan tro, at programmet er låst. Derfor har jeg tilføjet en progressbar, som ligeså stille kører op til 100%. Men for at den skal virke, skal alle funktioner laves trinvist i løkken. :(
Avatar billede Max Novice
30. januar 2006 - 15:27 #3
Kan ikke lige gennemskue hvordan du vil gøre med Clone. Kan du forklare?
Avatar billede peter_svendsen Nybegynder
30. januar 2006 - 16:02 #4
Der er heller ikke en direkte løsning med Clone. Troede bare det var for at undgå kontakt med din datatable at du lavede alle de omveje du har.

Jeg har ikke haft datamængder hvor det var et problem med bare at sætte datasource, så kan desværre ikke lige umiddelbart hjælpe dig.
Avatar billede Max Novice
31. januar 2006 - 08:54 #5
Hmmm.. Så fandt jeg endelig frem til løsningen. :)

DataTable dt = new DataTable();
DataRow dr = dt.NewRow();
  // tildel dr værdier her (0-20)
dt.Rows.Add(dr);
dt.AcceptChanges();
DataGridViewRow dgvr = new DataGridViewRow();
dgvr.CreateCells(this.dgv, new object[] { dr[0], ... dr[20] });
this.dgv.Rows.Add(dgvr);

Mvh.
/Mnc
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