130 lines
3.6 KiB
Markdown
130 lines
3.6 KiB
Markdown
# SQLite_test
|
|
|
|
Een WPF desktop applicatie voor het beheren van gebruikersgegevens met SQLite database ondersteuning.
|
|
|
|
## Beschrijving
|
|
|
|
Dit project is een demonstratie-applicatie die laat zien hoe je SQLite kunt integreren in een WPF-applicatie voor het uitvoeren van CRUD-operaties (Create, Read, Update, Delete). De applicatie biedt een eenvoudige gebruikersinterface voor het toevoegen en verwijderen van gebruikersgegevens uit een lokale SQLite database.
|
|
|
|
## Technologieën
|
|
|
|
- **.NET 8.0** - Target framework
|
|
- **WPF (Windows Presentation Foundation)** - UI framework
|
|
- **SQLite** - Lokale database
|
|
- **System.Data.SQLite** (versie 1.0.119) - SQLite ADO.NET provider
|
|
|
|
## Projectstructuur
|
|
|
|
```
|
|
SQLite_test/
|
|
├── SQLite_test/
|
|
│ ├── Classes/
|
|
│ │ ├── Crud.cs # Basis class voor database operaties
|
|
│ │ └── User.cs # User class met CRUD functionaliteit
|
|
│ ├── MainWindow.xaml # UI definitie
|
|
│ ├── MainWindow.xaml.cs # UI code-behind
|
|
│ ├── App.xaml # Applicatie configuratie
|
|
│ └── SQLite_test.csproj # Project bestand
|
|
└── README.md
|
|
```
|
|
|
|
## Functionaliteit
|
|
|
|
- **Database Connectie**: Automatische verbinding met een lokale SQLite database (`mydatabase.db`)
|
|
- **Tabel Aanmaken**: Automatische aanmaak van de `Users` tabel indien deze nog niet bestaat
|
|
- **Gebruiker Toevoegen**: Voeg nieuwe gebruikers toe aan de database met naam en leeftijd
|
|
- **Gebruiker Verwijderen**: Verwijder gebruikers op basis van ID (in ontwikkeling)
|
|
|
|
### Database Schema
|
|
|
|
De applicatie gebruikt een `Users` tabel met de volgende structuur:
|
|
|
|
| Kolom | Type | Beschrijving |
|
|
|-------|---------|------------------------|
|
|
| Id | INTEGER | Primary key (auto-increment) |
|
|
| Name | TEXT | Naam van de gebruiker |
|
|
| Age | INT | Leeftijd van de gebruiker |
|
|
|
|
## Installatie
|
|
|
|
### Vereisten
|
|
|
|
- Windows besturingssysteem
|
|
- .NET 8.0 SDK of hoger
|
|
- Visual Studio 2022 (aanbevolen) of Visual Studio Code
|
|
|
|
### Stappen
|
|
|
|
1. Clone de repository:
|
|
```bash
|
|
git clone <repository-url>
|
|
cd SQLite_test
|
|
```
|
|
|
|
2. Open de solution:
|
|
```bash
|
|
SQLite_test.sln
|
|
```
|
|
|
|
3. Restore NuGet packages:
|
|
```bash
|
|
dotnet restore
|
|
```
|
|
|
|
4. Build het project:
|
|
```bash
|
|
dotnet build
|
|
```
|
|
|
|
5. Run de applicatie:
|
|
```bash
|
|
dotnet run --project SQLite_test
|
|
```
|
|
|
|
## Gebruik
|
|
|
|
1. Start de applicatie
|
|
2. De database verbinding wordt automatisch tot stand gebracht
|
|
3. Gebruik de **Add** knop om een nieuwe gebruiker toe te voegen
|
|
4. Gebruik de **Delete** knop om een gebruiker te verwijderen (voer het ID in wanneer gevraagd)
|
|
|
|
## Development
|
|
|
|
### CRUD Class Structuur
|
|
|
|
De applicatie gebruikt een object-georiënteerde benadering met een basis `Crud` class die geërfd wordt door de `User` class:
|
|
|
|
- **Crud.cs**: Bevat de database connectie en basis CRUD methoden
|
|
- **User.cs**: Erft van `Crud` en biedt user-specifieke operaties
|
|
|
|
### Uitbreidingsmogelijkheden
|
|
|
|
De applicatie kan uitgebreid worden met:
|
|
- Read operaties om gebruikers weer te geven in een DataGrid
|
|
- Update functionaliteit voor het bewerken van gebruikersgegevens
|
|
- Input validatie en error handling
|
|
- Data binding voor dynamische UI updates
|
|
- Zoek- en filterfunctionaliteit
|
|
|
|
## Database Bestand
|
|
|
|
De SQLite database wordt automatisch aangemaakt als `mydatabase.db` in de applicatie directory bij de eerste run.
|
|
|
|
## Troubleshooting
|
|
|
|
**Database connectie mislukt:**
|
|
- Controleer of de applicatie schrijfrechten heeft in de directory
|
|
- Check de Debug output voor specifieke foutmeldingen
|
|
|
|
**Build errors:**
|
|
- Zorg dat .NET 8.0 SDK is geïnstalleerd
|
|
- Restore NuGet packages met `dotnet restore`
|
|
|
|
## Licentie
|
|
|
|
Dit is een test/demonstratie project.
|
|
|
|
## Auteur
|
|
|
|
Mark K
|