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
Implementare il throttling in ASP.NET Core
Cache policy su route groups di Minimal API in ASP.NET Core 7
Load test di ASP.NET Core con k6
Usare ASP.NET Core dev tunnels per testare le applicazioni su internet
Eseguire una query su SQL Azure tramite un workflow di GitHub
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Short-circuiting della Pipeline in ASP.NET Core
Personalizzare l'errore del rate limiting middleware in ASP.NET Core