ASP.net OleDataAdapter
ASP.NET : ADO.net objecten OleDataAdapter ,Dataset.
Bij de bespreking van het ADO.net object OleDBDatareader zagen wij dat er enkel data kan ingelezen worden en eens zover de connectie explicit moet gesloten worden. Omwille daarvan is 'paging' bij bijvoorbeeld de GridView data-control niet mogelijk. Met 'paging' kan de data in de Gridview over verschillende pagina's van bijvoorbeeld 10 records getoond worden. Dit is wel mogelijk met het ADO.net DataSet object.
In het volgende voorbeeld wordt het DataSet object gebruikt als 'databron' voor een Gridview control. In de Gridview is 'paging' voorzien en is het veld IDAuteur van de tblAuteur een hyperlink die het mogelijk moet maken te navigeren naar een pagina met detail gegevens over de auteur en een overzicht van de werken ervan.
De .aspx. - pagina met de Gridview met paging en hyperlink. Let op : DataNavigateUrlFormatString="Auteur_5.aspx?IDAuteur={0}"
Dit betekent dat drukken op de hyperlink navigeert naar de pagina Auteur_5.aspx en dat men een querystring meegeeft waar IDAuteur de waarde heeft
in de betreffende rij van de GridView grvAuteur.
<asp:GridView ID="grvAuteur" runat="server" AutoGenerateColumns="False" AllowPaging="True" EnableSortingAndPagingCallbacks="True"> <Columns> <asp:HyperLinkField DataNavigateUrlFields="IDAuteur" DataNavigateUrlFormatString="Auteur_5.aspx?IDAuteur={0}" DataTextField="IDAuteur" /> <asp:BoundField DataField="ANaam" HeaderText="Naam" /> <asp:BoundField DataField="AVoornaam" HeaderText="Voornaam" /> <asp:BoundField DataField="Nationaliteit" HeaderText="Nationaliteit" /> <asp:BoundField DataField="AGeslacht" HeaderText="Geslacht" /> </Columns> </asp:GridView>
De .aspx.vb - pagina met de Gridview met paging en hyperlink.
Partial Class Boek_Auteur_4 Inherits System.Web.UI.Page Public strCon As String = ConfigurationManager.ConnectionStrings("boeken").ToString Public con As New System.Data.OleDb.OleDbConnection(strCon) Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim strSQL As String = "SELECT tblAuteur.IDAuteur, tblAuteur.ANaam, tblAuteur.AVoornaam, tblLuNat.Nationaliteit," _ & "tblAuteur.AGeslacht FROM tblAuteur INNER JOIN tblLuNat ON tblAuteur.ANat = tblLuNat.IDANat ORDER BY tblAuteur.ANaam;" con.Open() Dim objCom As New OleDbCommand(strSQL, con) Dim objDAdap As New OleDbDataAdapter(objCom) Dim objDataset As New DataSet() objDAdap.Fill(objDataset, "dtAuteur") Me.grvAuteur.DataSource = objDataset.Tables("dtAuteur") Me.grvAuteur.DataBind() con.Close() End Sub End Class