Il .NET Framework ci mette a disposizione una classe per ottenere informazioni utili dai nostri database come la lista delle tabella in esse contenute o un elenco dei campi in una tabella più altre importanti informazioni, attraverso la classe OleDbSchemaGuid, utilizzata per l'accesso ad Access. Nel caso volessimo utilizzare SQL Server, potremo cambiare la stringa di connessione, inserendone una Ole-db che faccia uso di SQL Server stesso.
Vediamo subito un esempio per ottenere la lista delle tabella in un nostro database Access:
<%@ Import Namespace="System.IO" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OleDb" %> <script runat="server" Language="C#"> void Page_Load( object sender, EventArgs e ) { OleDbConnection con = new OleDbConnection(@"PROVIDER=Microsoft.Jet.OLEDB.4.0; Data Source=g:\source\stored.mdb"); con.Open(); DataTable dt ; dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[]{null,null,null,"TABLE"}); ElencoTabelle.DataSource = dt; ElencoTabelle.DataBind(); con.Close(); } </script> <asp:DataGrid id="ElencoTabelle" runat="server" /> Nella lunga tabella che otterremo, abbiamo a disposizione moltissimi dati che ci possono essere utili, come "COLUMN_NAME" che contiene il nome di ogni campo, il "DATA_TYPE" che è un valore numerico che indica il tipo di dato contenuto. Se volessimo ottenere informazioni sui campi in una tabella, potremmo utilizzare invece questo script: <%@ import Namespace="System.IO" %> <%@ import Namespace="System.Data" %> <%@ import Namespace="System.Data.OleDb" %> <script runat="server" Language="C#"> void Page_Load( object sender, EventArgs e ) { OleDbConnection con = new OleDbConnection(@"PROVIDER=Microsoft.Jet.OLEDB.4.0; Data Source=g:\source\stored.mdb"); con.Open(); DataTable dt ; dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[]{null,null,"Tabella1",null} ); // al posto di Tabella1 inserire il nome della tabella desiderata Elenco.DataSource = dt; Elenco.DataBind(); con.Close(); } </script> <asp:DataGrid id="Elenco" runat="server" />
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Un componente per gestire lo stato della connessione di rete in Blazor WebAssembly
Un pattern per gestire il pre-rendering in componenti Blazor complessi
Registrare un servizio generico nella dependency injection di ASP.NET Core
Abilitare e gestire il prerendering nelle applicazioni Blazor WebAssembly
Abilitare la configurazione fortemente tipizzata in Blazor
Testare le impostazioni CORS di un'applicazione ASP.NET Core
Eseguire lo shutdown pulito di un'applicazione ASP.NET Core
L'agenda di #netconfit è online => https://aspit.co/netconfit-20 3 track, tante sessioni e una keynote speciale di @shanselman per la più importante conferenza in lingua italiana su .NET! Vi aspettiamo il 24/11. Iscrizioni sempre aperte! #donet #aspnet #netconf
.NET Conference Italia 2020
Eseguire del codice personalizzato al click di una checkbox in Blazor
Storage persistente con Kubernetes e AWS
Effettuare il tracing asincrono delle chiamate a un'applicazione ASP.NET Core