Ich benutze Microsoft Access. Hier unten implementiere ich OleDb und meinen Connectionstring. Meine Datenbank besteht aus 3 Tabellen. Computer, Nutzer und Computernutzer. Ein Nutzer kann mehr als einen PC haben.
Mein Ziel ist die Computertabelle komplett im DataGridView auszulesen, und bei jedem Computer auch noch im DataGridView die Nutzer des Computers, falls es welche gibt, wenn nicht einfach leer lassen.
Wenn mehrere Nutzer den PC nutzen, dann mit Komma trennen.
Tabelle Nutzer:
us_id | us_firstname | us_lastname | us_departement
1 | Michael | Rotter | IT
2 | Peter | Parker | Photographing
3 | Jonas | Klos | Director
Tabelle Computer: (hat 6 weitere Spalten, wie RAM, Netzteil, etc aber die hab ich mal rausgelassen)
co_id | co_name | co_gpu | co_cpu
1 | PC090 | 1080 | 2700X
2 | PC040 | 1070 | R5 1600
3 | PC066 | 1060 | i5-6600K
Table Computernutzer:
co_id | us_id
1 | 1
1 | 2
2 | 2
3 | 3
So lese ich die Daten ins DataGridView, nur will ich nun das im DataGridView der Computer steht, mit den zugehörigen Komponenten,
und bei jedem PC in der letzten Spalte der oder die Nutzer, falls mehr mit Komma getrennt, stehen.
Für ein solches Ergebnis würde ich gerne eine query haben
co_id | co_gpu | co_cpu | us_firstname
1 | 1080 | 2700X | Michael, Peter
2 | 1070 | R5 1600 | Peter
3 | 1060 | i5-6600K | Jonas
Mein Ziel ist die Computertabelle komplett im DataGridView auszulesen, und bei jedem Computer auch noch im DataGridView die Nutzer des Computers, falls es welche gibt, wenn nicht einfach leer lassen.
Wenn mehrere Nutzer den PC nutzen, dann mit Komma trennen.
Imports System.Data.OleDb
ConnectionString: Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;
Persist Security Info=False;
ConnectionString: Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;
Persist Security Info=False;
Tabelle Nutzer:
us_id | us_firstname | us_lastname | us_departement
1 | Michael | Rotter | IT
2 | Peter | Parker | Photographing
3 | Jonas | Klos | Director
Tabelle Computer: (hat 6 weitere Spalten, wie RAM, Netzteil, etc aber die hab ich mal rausgelassen)
co_id | co_name | co_gpu | co_cpu
1 | PC090 | 1080 | 2700X
2 | PC040 | 1070 | R5 1600
3 | PC066 | 1060 | i5-6600K
Table Computernutzer:
co_id | us_id
1 | 1
1 | 2
2 | 2
3 | 3
So lese ich die Daten ins DataGridView, nur will ich nun das im DataGridView der Computer steht, mit den zugehörigen Komponenten,
und bei jedem PC in der letzten Spalte der oder die Nutzer, falls mehr mit Komma getrennt, stehen.
VB.NET-Quellcode
- Dim con as new oledbconnection(conn), cmd as new oledbcommand(Nothing, con)
- Dim reader as oledbdatareader
- cmd.commandtext = "SELECT * FROM Computer"
- con.open
- reader = cmd.executereader
- DataGridView1.Rows.Clear
- While reader.read
- DataGridView1.Rows.Add(reader("co_id"),
- reader("co_name"),
- reader("co_gpu"),
- reader("co_cpu"))
- End While
- Con.Close
- Reader.Close
Für ein solches Ergebnis würde ich gerne eine query haben
co_id | co_gpu | co_cpu | us_firstname
1 | 1080 | 2700X | Michael, Peter
2 | 1070 | R5 1600 | Peter
3 | 1060 | i5-6600K | Jonas
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Independency“ ()