Toon posts:

[ADO.NET] meerdere tabellen in dataset/updaten met DB

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb in een pagina een datagrid staan die de output van de volgende query toont:
code:
1
2
3
4
5
6
7
SELECT U.UserID, U.Username, U.Password, U.Status, G.Name
FROM Roles R
   INNER JOIN rechten G ON
      R.RechtID = G.RechtID
   INNER JOIN Users U ON
      R.UserID = U.UserID
ORDER BY U.USERID


Met het volgende als output:
code:
1
2
3
4
5
6
7
8
Inlognaam    Naam          Wachtwoord    Status         Recht 
=============================================================
09999        Test account  qwerty        Actief         CanEdit 
09999        Test account  qwerty        Actief         CanInsert 
54236        54236         54236         Actief         Administrator 
54237        54237         54237         Non-Actief     Administrator 
54237        54237         54237         Non-Actief     CanEdit 
........     ........      ........      ........       ........


Het gaat hier dus om Gegevens uit 2 tabellen die getoont moeten worden (er worden hiervoor dus 3!! tabellen aangesproken nml. USERS, ROLES en RECHTEN). Voor de output in de datagrid is het blijkbaar voldoende alleen een nieuwe DataSet aan te maken. De output krijg ik netjes te zien in mn grid.

Maar nu wil ik deze output ook kunnen wijzigen... Moet ik hiervoor een Dataset aanmaken met 2(of3??) Datatables en een datarelationcollection? En hoe ga ik dit doen dan? Kan geen info erover vinden. Ik heb zelfs een boek van ADO.NET waar het niet instaat }:O 8)7 :?

Deze code gebruik ik op dit moment (zonder update-optie dus he)
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim cmd as New SqlCommand("SELECT U.UserID Inlognaam,
                    U.Username Naam, U.Password Wachtwoord, U.Status Status,
                    G.Name Recht FROM Roles R 
                    INNER JOIN rechten G ON R.RechtID = G.RechtID 
                    INNER JOIN Users U ON R.UserID = U.UserID 
                    ORDER BY U.USERID", conn)
                                
                Dim adapt as New SqlDataAdapter(cmd)
                Dim dsUsers as New DataSet()
                
                conn.Open()
                adapt.Fill(dsUsers)
                conn.Close()
                
                users.DataSource = dsUsers
                users.DataBind()

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
Je zult idd een DataSet kunnen gebruiken waar je de datatables en de relations aan toevoegt.

Dat je nergens info vind over hoe je dat moet dan kan ik moeilijk geloven.

stappen:
maak DataTables en vul deze op.
Add deze datatables aan je dataset.
Maak DataRelations die je aan je DataSet toevoegt:

code:
1
2
3
4
5
6
7
8
DataTable myDataTable = new DataTable("test");
aDataAdapter.Fill(myDataTable);

MyDataSet.Tables.Add(myDataTable);

....

DataRelation dr = new DataRelation (....)


Verder kan je zelf natuurlijk ook altijd eerst eens de help raadplegen... Je weet waar je moet opzoeken, de MSDN is wel erg uitgebreid, en je vind er de nodige voorbeelden in.

Om de wijzigingen in de DataSet dan up te daten naar je DB, zal je een DataAdapter nodig hebben waar de UpdateCommand, DeleteCommand en InsertCommand van gedefinieerd is, en zul je de juiste method van die dataAdapter moeten oproepen.

[ Voor 16% gewijzigd door whoami op 12-09-2003 15:18 ]

https://fgheysels.github.io/


Verwijderd

Topicstarter
ja vreemd he, ik heb op inet gezocht, heb een boek van O'REILLY over asp.net en 1 over ado.net. Staat niets in over meerdere datatables +relaties in een dataset en hoe te updaten... enkel voorbeelden over update-acties op 1 tabel 8)7

Toch maar ff wat beter zoeken zo... maarja, tis vrijdag-middag... dat zal het wel zijn 8)

[ Voor 31% gewijzigd door Verwijderd op 12-09-2003 15:24 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54

https://fgheysels.github.io/