[.Net] winforms datagrid uitlezen regel

Pagina: 1
Acties:

  • 6K
  • Registratie: September 2002
  • Laatst online: 19-01-2025

6K

is ook zo...

Topicstarter
C#.NET
Op een form met een datagrid welke data laat zien uit 1 tabel in een dataset staat een knop: wijzig

wanneer ik op deze knop klik wil ik een nieuw form met de geselecteerde rij uit de grid in losse textvelden zien zodat ik deze individueel kan wijzigen.
Het record bevat meer velden dan de grid laat zien uiteraard (zoals ID)

Ik kan uiteraard wel de currentrow uitlezen van de grid, maar dat is ook werkelijk alles 8)7
Ik weet NIET hoe ik dus de goede rij (liefst op basis van ID) kan selecteren en door kan geven aan een nieuw scherm....

MSDN biedt helaas ook niet veel uitkomst en op het internet heb ik ook al 2 dagen gegoogled |:(

anyone?

[ Voor 1% gewijzigd door 6K op 19-11-2003 11:14 . Reden: Ik heb het idee dat dit niet moeilijk kan zien :( ]

٩(͡๏̯͡๏)۶ ٩(●̮̮̃•̃)۶


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
Je kan mbhv de CurrentRowIndex de DataRow uit de DataTable van je Dataset halen.

code:
1
int id = Convert.ToInt32(myDataSet.Tables[0].Rows[aDataGrid.CurrentRowIndex]);


Je kan natuurlijk ook direct de volledige DataRow doorgeven.

[ Voor 16% gewijzigd door whoami op 19-11-2003 11:25 ]

https://fgheysels.github.io/


  • 6K
  • Registratie: September 2002
  • Laatst online: 19-01-2025

6K

is ook zo...

Topicstarter
An unhandled exception of type 'System.InvalidCastException' occurred in mscorlib.dll

Additional information: Specified cast is not valid.

maakt niet uit naar welk type int ik cast, hij pikt dit dus niet?

٩(͡๏̯͡๏)۶ ٩(●̮̮̃•̃)۶


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Volgens mij klopt de code van whoami niet helemaal letterlijk..

Je krijgt voor zover ik zie een datarow terug; en deze kan je idd niet converten naar een integer.

je moet een item uit de datarow casten naar een integer

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
Nee, idd, die code klopt niet helemaal.
Je moet idd nog het juiste veld casten naar een integer, en niet de hele datarow.

code:
1
int i = Convert.ToInt32(aDataRow["ID"]);

bv.

my bad. :z

Voor de volledigheid:
dit moet het dus zijn:

code:
1
int id = Convert.ToInt32(myDataSet.Tables[0].Rows[aDataGrid.CurrentRowIndex]["ID"]);

[ Voor 34% gewijzigd door whoami op 19-11-2003 11:45 ]

https://fgheysels.github.io/


  • 6K
  • Registratie: September 2002
  • Laatst online: 19-01-2025

6K

is ook zo...

Topicstarter
jaaahhhhh.....
eindelijk.... ik wist niet dat 1 regel code zoveel voldoening kon geven na 2 dagen :)

nu nog uit gaan zoeken hoe ik hem door kan koppen naar een nieuw form en daar kan gaan editen in textboxen... (en de gerelateerde ophalen zonder relatie te gebruiken, dus op foreign key), maar goed stap voor stap en we komen er wel
Tenx!

٩(͡๏̯͡๏)۶ ٩(●̮̮̃•̃)۶


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
6K schreef op 19 november 2003 @ 12:19:
nu nog uit gaan zoeken hoe ik hem door kan koppen naar een nieuw form en daar kan gaan editen in textboxen...
Je kan ook de volledige datarow doorgeven naar die andere form.
Dan heb je daar ook direct alle gegevens mbt dat record. (Maar je moet natuurlijk wel ff nagaan of dat wel opportuun is in jouw situatie).
(en de gerelateerde ophalen zonder relatie te gebruiken, dus op foreign key),
Wat bedoel je precies? Hier zal je gewoon een query kunnen doen die die records ophaalt oid.

https://fgheysels.github.io/


  • 6K
  • Registratie: September 2002
  • Laatst online: 19-01-2025

6K

is ook zo...

Topicstarter
ik heb nog niet eerder met winforms of ado gewerkt, dus het is allemaal nieuw voor me. Ik wil graag op form1 een relatie selecteren en als ik op wijzig klik naar een nieuw form gaan en daar die gekozen relatie wijzigen.

echter, form2.show werkt bijv. niet (en kan ik input meegeven aan een form?)

en inderdaad, zodra ik gerelateerde wil gaan halen zal ik een nieuwe dataset moeten vullen met een selectie(query) op de foreign key... denk ik :?

٩(͡๏̯͡๏)۶ ٩(●̮̮̃•̃)۶


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
Hoezo, form2.Show() werkt niet?
Je moet natuurlijk wel geheugen alloceren voor form2:

code:
1
2
form2 frm = new form2();
frm.Show();


In je form2 kan je properties maken waar je je gewenste data kan aan meegeven:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class form2 : Form
{
     private int _id;

     public int RelatieId
     {
         get 
         {
                 return _id;
         }
         set
         {
               _id = value;
         }
     }
}

dan kan je, bij het openen van een nieuwe Form2, volgende code gebruiken:
code:
1
2
3
Form2  frm = new Form2();
frm.RelatieId = 1;
frm.Show();

https://fgheysels.github.io/


  • 6K
  • Registratie: September 2002
  • Laatst online: 19-01-2025

6K

is ook zo...

Topicstarter
Tenx Whoami, voordat we samen heel die app gaan maken ;)
heb je een goede site waar ik dit soort dingen snel kan oppakken?
het is eigenlijk best wel basiskennis voor winforms lijkt me... niet echt geschikt voor GoT

(want je form.show optie werkte wel, maar levert meteen een nieuwe vraag, ik kan nl. het originele form wel enabled = false krijgen, maar niet meer terug op true na of tijdens afsluiten van form2.... 8)7 )

٩(͡๏̯͡๏)۶ ٩(●̮̮̃•̃)۶


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
6K schreef op 19 november 2003 @ 12:43:
Tenx Whoami, voordat we samen heel die app gaan maken ;)
heb je een goede site waar ik dit soort dingen snel kan oppakken?
het is eigenlijk best wel basiskennis voor winforms lijkt me... niet echt geschikt voor GoT
Check de FAQ eens, daar staan wel een aantal interessante links geloof ik.
(want je form.show optie werkte wel, maar levert meteen een nieuwe vraag, ik kan nl. het originele form wel enabled = false krijgen, maar niet meer terug op true na of tijdens afsluiten van form2.... 8)7 )
Waarom zou je je eerste form willen disablen als je form2 geopend hebt?
Als je niet wil dat form1 bereikbaar is als je form2 opent, dan kan je form2 altijd modaal openen dmv de ShowDialog() functie.

https://fgheysels.github.io/

Pagina: 1