c# : databases

  1. Inleiding
  2. Met Visual Studio.net
  3. Databinding in .net / Windows Forms
  4. Data manipuleren: SqlCommand
  5. Data manipuleren: SqlDataAdapter en SqlCommandBuilder
  6. Data manipuleren: SqlDataAdapter - zelf commands bouwen

Inleiding

Dit hoofdstuk leert je databasegestuurde toepassingen maken. Het is belangrijk dat je reeds een basiskennis hebt van Windows.Form applicaties (gebruik van controls zoals ListBox en DataGrid) en van ADO.net.

Database-applicatie met Visual Studio.net

Eenvoudig voorbeeld

Wanneer je werkt met Visual Studio.net kan je de code die je zelf moet schrijven voor het maken van een databaseproject tot een minimum beperken.

Bekijk de code die automatisch door Visual Studio.net werd gegenereerd, het belangrijkste is dat je begrijpt hoe deze code is opgebouwd en in elkaar zit. Visual Studio is een hulpmiddel voor jou als programmeur, zorg dat je echter steeds de code begrijpt en hier ook op kan ingrijpen !

Master-Details

We maken nog een toepassing met Visual Studio.net:

Databinding in .net / Windows Forms

BindingContext

System.Windows.Forms.BindingContext

Een Windows Form beschikt over minstens één BindingContext object . Dit object beheert de CurrencyManager objecten voor de DataSources van deze Form. Doordat er meerdere DataSources op een Form aanwezig kunnen zijn, staat de BindingContext toe te communiceren met de CurrencyManager van de gewenste DataSource.

CurrencyManager

System.Windows.Forms.CurrencyManager

De CurrencyManager zorgt ervoor dat data-bound controls gesynchroniseerd blijven met elkaar: de controls die aan dezelfde DataSource gebonden zijn tonen de gegevens van dezelfde record.

Een belangrijke eigenschap van CurrencyManager is Position: deze eigenschap geeft aan op welke record de CurrencyManager momenteel gepositioneerd is.

Bindable Data Sources

Om een control te kunnen binden aan een data source kunnen we als minimum voorwaarde stellen: de source moet de interface IList implementeren. Er zijn binnen het .NET Framework veel objecten aanwezig die als data source kunnen dienen: van eenvoudige elementen zoals Array over collecties zoals ArrayList en Hashtable tot complexe structuren zoals DataView, DataTable, ...

DataBinding

Simple Data Binding kan je toepassen wanneer je bijvoorbeeld de Text-eigenschap van een TextBox aan een gegevensbron wenst te binden. Hiervoor kan je bindingen toevoegen aan de DataBindings-collectie van de control:
txtContact.DataBindings.Add("Text",dsView,"Klant.ContactName");

argumenten:

Binden aan een ComboBox of ListBox:

comboBoxState.DataSource=States
comboBoxState.DisplayMember="LongName"
comboBoxState.ValueMember="ShortName"
comboBoxState.DataBindings.Add("SelectedValue", customersDataSet1, "Customers.Region")

Binden aan een DataGrid:

dataGrid1.Size = new System.Drawing.Size(584, 336);
dataGrid1.DataSource = customersDataSet1;
dataGrid1.DataMember = "Customers";

Voorbeeld: automatisch gesynchronsiseerd Master-Detail: werken met relaties

In deze toepassing leer je werken met gesynchroniseerde gegevens. Je kan een klant kiezen in een ComboBox. De bestellingen van de klant worden weergegeven in een DataGrid. De detailgegegvens van de bestelling worden weergegeven in een tweede DataGrid.

Hiertoe kan je een DataSet aanmaken die naast de benodigde tabellen ook de relaties tussen de tabellen bevat. Relaties kan je maken met behulp van DataRelation-objecten. Deze relaties voeg je toe aan de Relations-collectie van de DataSet.

Om de DataGrids te synchroniseren stel je de DataSource voor beide DataGrid-objecten in op de DataSet. Om de relatie te handhaven stel je de eigenschap DataMember van een gekoppelde DataGrid in op de relatie.

Toon /verberg Oplossing

Positionering

We voegen nu aan de vorige toepassing navigatieknoppen en een display-paneeltje toe:

Toon /verberg

Data manipuleren: SqlCommand

In de bovenstaande toepassingen heb je geleerd hoe je gegevens uit een gegevensbron kan weergeven in .NET Controls.

Met ADO.net kan je deze gegevens ook manipuleren: records toevoegen, verwijderen en bewerken.

De manier die we hier bespreken is de volledig handmatige manier van werken: we houden de touwtjes zo strak mogelijk zelf in hand.

Een voorbeeld van deze werkwijze vind je in het hoofdstuk ADO.net.

Je kan hier natuurlijk ook werken met Stored Procedures in plaats van ingebedde SQL-Statements.

Data manipuleren: SqlDataAdapter en SqlCommandBuilder

Wens je met een mimimum aan programmacode gegevens te manipuleren, gebruik dan een SqlCommandBuilder.

Een voorbeeld van deze werkwijze vind je in het hoofdstuk ADO.net.

Data manipuleren: SqlDataAdapter - zelf commands bouwen

Wil je werken met een SqlDataAdapter, maar wens je toch zelf controle te hebben over de commands die uitgevoerd worden bij het manipuleren van de records, dan kan je de routines die uitgevoerd worden bij een UPDATE, INSERT en DELETE zelf aangeven.

In deze kleine toepassing gebruiken we hiervoor Stored Procedures, je kan natuurlijk ook met ingebedde SQL-Statements werken.

Toon /verberg

Oefeningen

oefeningen

Meer tutorials:
leer ook: html | xhtml | css | asp | asp.net | c# | ado.net | linq | ajax | java | javascript
Valid HTML 4.01! Valid CSS! © - Cursusweb