- 1. Il faut voir une section html dans le <body>, du genre :
-
- <form id="Form1" method="post" runat="server">
-
- <asp:Label id="LbInfo" runat="server" Width="100%">info:</asp:Label>
- <asp:DataGrid id="TablesGrid" runat="server" Width="100%"></asp:DataGrid>
-
- <%-- et pour l'affichage de la table sélectionnée : --%>
- <asp:DropDownList ID="ddlTables" runat="server" AutoPostBack="true" ></asp:DropDownList>
- <asp:DataGrid id="TGrid" runat="server" Width="100%"></asp:DataGrid>
-
- </form>
-
- 2. Ensuite le code:
-
- 'en haut :
- Imports System.Data.OleDb
-
-
- Dim Chem As String 'Chemin conduisant à la base
- Dim ConnString As String
- Dim Conn As OleDbConnection
-
- Dim Latable As String
- '===================================================
- Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
-
- Chem = ConfigurationSettings.AppSettings("chem") 'chemin enregistré dans le "Web.config" avec ce genre de chose :
- '<appSettings>
- '<add key="chem" value="//MonSite/BDD/MaBase.mdb"/>
- '</appSettings>
-
- ConnString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath(Chem) ' pour une base access
- Conn = New OleDbConnection(ConnString)
-
- If Not IsPostBack Then
-
- '-------Lister les tables du datatable--
- Dim h As Integer
- For h = 0 To GetTables(Conn).Rows.Count - 1
-
- 'écriture de la listre des tables
- LbInfo.Text &= GetTables(Conn).Rows(h).Item(2) & "<br>" ' l'indice 2 est l'indice de la colonne "table_name" voir le datagrid en dessous ( 3e colonne)
-
-
- 'remplissage de la ddlTables
- ddlTables.Items.Add(GetTables(Conn).Rows(h).Item(2))
-
- Next
- '------affiche le datatable dans un datagrid--
- TablesGrid.DataSource = GetTables(Conn)
- TablesGrid.DataBind()
-
- '--affiche la table sélectionnée dans un datagrid (TGrid)
- Latable = ddlTables.SelectedValue
- ChargerData(Latable)
-
-
- End If
- End Sub
- '==================================================
- 'Cette fonction renvoie un DataTable contenant tout sur les tables de la base liée avec la connection "Conn"
-
- Public Function GetTables(ByVal conn As OleDbConnection) As DataTable
- conn.Open()
- Dim schemaTable As DataTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, New Object() {Nothing,_ Nothing, Nothing, "TABLE"}) 'Pour les requêtes, on mettra "VIEW"
- conn.Close()
- Return schemaTable
- End Function
- '==================================================
- 'Recharge le dataGrid "Tgrid" lors d'une sélection
-
- Private Sub ddlTables_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ddlTables.SelectedIndexChanged
-
- Latable = ddlTables.SelectedValue
- ChargerData(Latable)
-
- End Sub
- '===========================================
-
- Sub ChargerData(ByVal table As String)
-
- SelectSql = "SELECT * FROM [" & table & "]"
- Commande = New OleDbCommand(SelectSql, Conn)
- Conn.Open()
- TGrid.DataSource = Commande.ExecuteReader()
- TGrid.DataBind()
- conn.close()
-
- End Sub
1. Il faut voir une section html dans le <body>, du genre :
<form id="Form1" method="post" runat="server">
<asp:Label id="LbInfo" runat="server" Width="100%">info:</asp:Label>
<asp:DataGrid id="TablesGrid" runat="server" Width="100%"></asp:DataGrid>
<%-- et pour l'affichage de la table sélectionnée : --%>
<asp:DropDownList ID="ddlTables" runat="server" AutoPostBack="true" ></asp:DropDownList>
<asp:DataGrid id="TGrid" runat="server" Width="100%"></asp:DataGrid>
</form>
2. Ensuite le code:
'en haut :
Imports System.Data.OleDb
Dim Chem As String 'Chemin conduisant à la base
Dim ConnString As String
Dim Conn As OleDbConnection
Dim Latable As String
'===================================================
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Chem = ConfigurationSettings.AppSettings("chem") 'chemin enregistré dans le "Web.config" avec ce genre de chose :
'<appSettings>
'<add key="chem" value="//MonSite/BDD/MaBase.mdb"/>
'</appSettings>
ConnString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath(Chem) ' pour une base access
Conn = New OleDbConnection(ConnString)
If Not IsPostBack Then
'-------Lister les tables du datatable--
Dim h As Integer
For h = 0 To GetTables(Conn).Rows.Count - 1
'écriture de la listre des tables
LbInfo.Text &= GetTables(Conn).Rows(h).Item(2) & "<br>" ' l'indice 2 est l'indice de la colonne "table_name" voir le datagrid en dessous ( 3e colonne)
'remplissage de la ddlTables
ddlTables.Items.Add(GetTables(Conn).Rows(h).Item(2))
Next
'------affiche le datatable dans un datagrid--
TablesGrid.DataSource = GetTables(Conn)
TablesGrid.DataBind()
'--affiche la table sélectionnée dans un datagrid (TGrid)
Latable = ddlTables.SelectedValue
ChargerData(Latable)
End If
End Sub
'==================================================
'Cette fonction renvoie un DataTable contenant tout sur les tables de la base liée avec la connection "Conn"
Public Function GetTables(ByVal conn As OleDbConnection) As DataTable
conn.Open()
Dim schemaTable As DataTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, New Object() {Nothing,_ Nothing, Nothing, "TABLE"}) 'Pour les requêtes, on mettra "VIEW"
conn.Close()
Return schemaTable
End Function
'==================================================
'Recharge le dataGrid "Tgrid" lors d'une sélection
Private Sub ddlTables_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ddlTables.SelectedIndexChanged
Latable = ddlTables.SelectedValue
ChargerData(Latable)
End Sub
'===========================================
Sub ChargerData(ByVal table As String)
SelectSql = "SELECT * FROM [" & table & "]"
Commande = New OleDbCommand(SelectSql, Conn)
Conn.Open()
TGrid.DataSource = Commande.ExecuteReader()
TGrid.DataBind()
conn.close()
End Sub