Toon posts:

datagrid rij selecteren Visual C#.net

Pagina: 1
Acties:
  • 556 views sinds 30-01-2008

Verwijderd

Topicstarter
Terwijl ik bezig ben met het programmeren van C#.net liep ik tegen een probleem aan. namelijk het voglende:

Ik wil uit een datagrid een rij selecteren. en d.m.v. dubbel klikken die rij in een andere form openen.
in dit andere form staan meer gegevens over de geselecteerde rij.

In de datagrid geeft hij 5 velden weer uit de database. in het detail form rond de 11 velden in textboxes.
hoe moet ik dit op een goede manier doen
moet ik bijv. in de dataset van me 1ste form alle 11 collomen al mee geven. maar deze nog niet laden in me datagrid. of kan ik dit beter in de 2de form pas gaan laden?

hoe krijg ik het zover dat als ik dubbelklik op een rij dat deze dan geselecteerd wordt.

hoe krijg ik deze rij in me nieuwe form en uitgelezen

hoop dat jullie me kunnen helpen.

Verwijderd

Je kunt beter alleen het ID meegeven en dan alle gegevens uit de database halen. Is een stuk netter.

Zoek maar even in tutorials hoe je een hele rij selecteert :) In ASP.NET had ik het wel geweten, maar dat gebruik jij volgens mij niet.

Verwijderd

Topicstarter
nee gebruik idd C#. in asp zie je wel iets meer er over maar ook niet helemaal duidelijk voor mijn toepassing..

oke maar iig 1 probleem opgelost..
het ID bestaan alleen uit 3 velden maar dat is iets wat ik zelf ff naar moet kijken..
kan je mischien anders klein stukje uit asp sturen..
mischien kan ik 't een beetje ombouwen

  • elmer25
  • Registratie: Februari 2002
  • Laatst online: 01-12-2021

elmer25

ooit was ik 25

Volgens mij verwarren jullie VB.NET en ASP.NET. Jullie gebruiken alletwee ASP.NET. VB.NET is de taal, dus de tegenhanger van C#(.NET). ASP.NET is de opvolger van ASP, en is te gebruiken met meerdere talen, net als je vroeger vbscript of jscript kon gebruiken.

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 23:22

mulder

ik spuug op het trottoir

elmer25 schreef op donderdag 23 februari 2006 @ 14:22:
Volgens mij verwarren jullie VB.NET en ASP.NET. Jullie gebruiken alletwee ASP.NET. VB.NET is de taal, dus de tegenhanger van C#(.NET). ASP.NET is de opvolger van ASP, en is te gebruiken met meerdere talen, net als je vroeger vbscript of jscript kon gebruiken.
Klop ook niet helemaal, ASP.NET gebruikt of C# of VB.Net. C# en VB.Net zijn geen tegenhangers maar ze zijn meerdere wegen ;)

De vraag is dus of TS een Windows- danwel een Webapplicatie aan het maken is.

oogjes open, snaveltjes dicht


Verwijderd

Topicstarter
volgens mij was het zo dat C#.net een soort papa is van ASP . oftewel.. asp kan makkelelijk er in verwerkt worden..
VB is wel een stuk anders...
of ben ik nu heel afwezig aan het denken :D

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Even ongenuanceerd, maar correcter dan de posts hierboven:
C# is een taal.
VB.NET is een taal.

ASP.NET is een platform voor webapplicaties. Die schrijf je in C# of VB.NET.
Windows.Forms is een platform voor Windowsapplicaties. Die schrijf je in C# of VB.NET.

Aangezien de TS het over een nieuw form heeft, neem ik aan dat hij dus met een Windows.Forms-project bezig is :?

edit: Don Facundo gaf het ook al correct aan :)

[ Voor 7% gewijzigd door kenneth op 23-02-2006 14:34 ]

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Verwijderd

Topicstarter
ik ben dat :D... en ik werk idd met windows forms..
gebruik visual studio 2003.net ervoor

Verwijderd

Topicstarter
Maar nu heben we heel leuk over C# en asp.net gepraat...
En heb nog steeds geen flauw idee hoe ik nu verder moet. hoop dat jullie kunnen helpen.

  • NoReason
  • Registratie: Mei 2003
  • Laatst online: 09-04 10:53

It's time to kick ass and chew bubble-gum, and I'm all out of gum.


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 23:22

mulder

ik spuug op het trottoir

Je zult in het dubbelklik event van dat grid moeten kijken welk item geselecteerd is. Uit die rij kun je het id van dat record opvragen (of misschien het record zelf) en die doorgeven aan een nieuw form.

Verwacht hier niet dat je klant-en-klare code krijgt ;)

oogjes open, snaveltjes dicht


  • whoami
  • Registratie: December 2000
  • Laatst online: 07-04 22:26
Laten we het topic nu niet verzanden in wat asp.net juist is.

Het is beter dat, als je een rij selecteert, pas op je detail-form alle gegevens die je wilt tonen gaat gaan ophalen. Op die manier ben je gewoon zeker dat je altijd met de recentste gegevens werkt. Stel dat jij je datagrid laadt, en je laadt al direct alle gegevens in, dan laad je op dat moment zowiezo al te veel dingen in het geheugen. De kans is nl. klein dat je geinteresseerd bent in details van alle records.
Stel nu dat jouw overzichtsscherm 10 minuten open staat, er ondertussen een andere user gegevens mbt record A wijzigt en opslaat, en jij daarna datzelfde record A opent, dan zie jij niet de meest recente situatie.

https://fgheysels.github.io/


Verwijderd

Topicstarter
dat had ik ook niet verwacht :p..

zit alleen wel met het probleem dat ik bijv. niet weet hoe ik die waarden van die rij kan meegeven naar me nieuwe form?
een parameter of zo instellen...
en die in me 2de form met een select ..bla.. FROM.. bla.. Where.. parameter...
of zo iets...
die rij moet ik selecteren met positon of currency manager?

  • Mastermind
  • Registratie: Februari 2000
  • Laatst online: 05-04 18:13
Met een view vul je de datagrid op basis van een selectiecriterium, zodat de grid gevuld is met de door jouw gewenste rows.
De view selecteert gewenste fields, neem ook de primary key (PK) mee.

Nu moet je een method die de datagrid vult in het form2 object aanroepen met als parameter de PK.
C#:
1
2
3
4
int i = dgBar.CurrentRowIndex;
DataView foo = dgBar.DataSource as DataView;
//form2 is al geinstantieerd en heeft een method fillGrid
form2.fillGrid(foo[i].primaryKey); //roep method aan met de geselecteerde PK.


Gebruikt de PK als selectiecriterium bij de view in form2.

Verwijderd

Topicstarter
whoo dat gaat me wel wat snel maar gaat ff kijken

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 20:51
Is dit niet een typisch gevalletje master-detail relations?

Roomba E5 te koop


  • Mastermind
  • Registratie: Februari 2000
  • Laatst online: 05-04 18:13
Verwijderd schreef op vrijdag 24 februari 2006 @ 13:33:
whoo dat gaat me wel wat snel maar gaat ff kijken
Is't gelukt?

Verwijderd

Topicstarter
nee het wil niet lukken.....

Verwijderd

Topicstarter
-------------------------------------------------------------------------------------------------------------------------------------------

errors:
(283): An object reference is required for the nonstatic field, method, or property 'System.Windows.Forms.DataGrid.CurrentRowIndex'


The type or namespace name 'dataSet' could not be found (are you missing a using directive or an assembly reference?)

what's wrong...
sorry dat de code niet in kleurtjes staat

[ Voor 99% gewijzigd door Verwijderd op 27-02-2006 11:45 ]


  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Verwijderd schreef op maandag 27 februari 2006 @ 10:39:
errors:
(283): An object reference is required for the nonstatic field, method, or property 'System.Windows.Forms.DataGrid.CurrentRowIndex'


The type or namespace name 'dataSet' could not be found (are you missing a using directive or an assembly reference?)

sorry dat de code niet in kleurtjes staat
Wil je dat dan even doen? met de [norml]
C#:
1
 en 
[/] tags? En alleen de relevante code plaatsen.

Hoewel dit een syntax-fout is, die je dus zelf zou moeten kunnen oplossen met een handleiding naast je.

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Verwijderd

Topicstarter
C#:
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
41
42
 

public delegate void CustomRowHandler(object sender, CustomRowEventArgs e);

public static event CustomRowHandler CustomRow;

public void dgrdataGrid_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            int rowIndex = DataGrid.CurrentRowIndex;         // DataGrid.CurrentRowIndex;
            if (CustomRow != null)
            {
                CustomRow(this, new CustomRowEventArgs(dataSet11,dgrdataGrid,rowIndex));
            }
        }


    public class CustomRowEventArgs : EventArgs
    {
        
        DataSet  dataSet;
        DataGrid grid;
        int row;
        public CustomRowEventArgs(DataSet DSet,DataGrid Grid,int Row)
        {
            grid = Grid;
            row = Row;
            dataSet = DSet;
        }
        public DataSet DSet
        {
            get { return dataSet; }
        }
        public DataGrid Grid
        {
            get { return grid; }
        }
        public int Row
        {
            get { return row; }
        }
        
    }


en form 2

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
            InitializeComponent();
            Form1.CustomRow += new
                HELLYEAH.CustomRowHandler(customHandler_CustomRow);



        private void customHandler_CustomRow(object sender,
            HELLYEAH.CustomRowEventArgs e)
        {
            DataSet1 dSet = e.DSet;
            DataGrid grid = e.Grid;
            int row = e.Row;
        
            textBox2.Text = grid[e.Row,0].ToString();
            textBox3.Text = grid[e.Row,1].ToString();
            textBox4.Text = grid[e.Row,2].ToString();
        
        }

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

C#:
1
int rowIndex = DataGrid.CurrentRowIndex;
Wil je hier geen instantie van een DataGrid hebben? Je roept nu een static ( = voor de hele klasse geldend) property aan, en die is er niet, want CurrentRowIndex is een non-static property.

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • whoami
  • Registratie: December 2000
  • Laatst online: 07-04 22:26
Sorry hoor, maar dit gaat eigenlijk een beetje te ver.
Met een manual in de buurt moet je toch wel in staat zijn om die foutmelding te kunnen oplossen. Je moet natuurlijk wel eerst eens even zelf de moeite doen om te begrijpen wat die foutmelding nu precies wil zeggen.
Het is niet de bedoeling dat je hier zomaar lappen code post, en dat mensen dan hier ff voor jou de syntax-errors eruit halen. Dit is echt iets wat je zelf moet kunnen.

https://fgheysels.github.io/

Pagina: 1

Dit topic is gesloten.