Connessione a database con Python e dataset
dataset è un modulo per Python per la connessione a database.
Sostanzialmente è un layer tra il linguaggio e il db, e quindi ne supporta diversi.
Forse per alcuni c'è bisogno di un modulo apposito.
dataset è un modulo per Python per la connessione a database.
Sostanzialmente è un layer tra il linguaggio e il db, e quindi ne supporta diversi.
Forse per alcuni c'è bisogno di un modulo apposito.
I controlli Repeater di Asp.NET ci permettono di creare un elenco, di qualsiasi tipo, prendendo i dati da una sorgente (tipicamente un database).
Oggi vediamo come usarli in VB.NET.
Cominciamo con il controllo; ogni controllo ha a disposizione diverse "parti" che non siamo obbligati ad usare:
Faccio una premessa: ancora non so quanto sia utile il programma scritto in Python che vederemo oggi, e ancora non ho capito come si possa agganciare ad un database come MySQL.
Ho fatto solo test con db SQLIte.
Il .NET Framework per certi versi è davvero ottimo.
Quello che vediamo oggi è come riempire una GridView da dati presi da un file XML.
Come potremo vedere, la cosa sarà molto semplice (soprattutto se non abbiamo pretese di personalizzazione); così semplice che neanche vi dirò com'è strutturato il file.
Ovviamente, in questo semplice esempio, verranno create tante colonne quanti sono i campi presenti nel file.
Quindi questo dipende anche dalle vostre esigenze.
Inoltre il progetto si basa su un Windows Form classico (l'ho preferito al WPF).
Bene, prima di tutto trasciniamo nella finestra un oggetto DataGridView.
In un altro articolo ho spiegato come esportare una DataGridView in Excel.
Adesso vediamo come esportare un DataSet direttamente, in modo da renderlo indipendente dal componente dove visualiziamo i dati.
In questo caso, infatti, i dati vengono poi rappresentati su una pagina Asp.NET e il plugin jQuery DataTable, il che rende impossibile esportare i dati direttamente dal componente.
Dobbiamo quindi estrarli direttamente da un DataSet.
Prima di tutto dobbiamo avere un metodo che esegue la connessione e la query; tipo questo:
public DataSet getSomething()
{
connection().Open();
OdbcCommand cmd = new OdbcCommand();
OdbcDataAdapter adapter = new OdbcDataAdapter();
DataSet ds = new DataSet();
cmd.CommandText = "SELECT * FROM somewhere";
cmd.Connection = conn;
adapter.SelectCommand = cmd;
adapter.Fill(ds);
ds.Dispose();
conn.Close();
return ds;
}
Semplicemente ritorna un DataSet.
I Web Form di Asp.NET hanno parrecchi controlli server utili, tipo le GridView per rappresentare i dati in forma tabellarre.
Io personalmene trovo questo controllo un pò obsoleto.
Ad esempio già per il fatto che quando fai il sorting la pagina viene ricaricata.....
Io ho optato per il plugin DataTable di jQuery, che già uso con soddisfazione in PHP.
Lo trovo molto più comodo e moderno.
Vediamo come usarlo in pagine Asp.NET.
Prima di tutto abbiamo una classica funzione che ci restituisce un DataSet o simili:
public DataSet getCodiciClienti()
{
connection().Open();
OdbcCommand cmd = new OdbcCommand();
OdbcDataAdapter adapter = new OdbcDataAdapter();
DataSet ds = new DataSet();
cmd.CommandText = "SELECT * FROM clienti";
cmd.Connection = conn;
adapter.SelectCommand = cmd;
adapter.Fill(ds);
ds.Dispose();
conn.Close();
return ds;
}
Nulla di nuovo.
Poi prepariamo a scarichiamo il tutto.
Abbiamo bisogno di jQuery, del plugin che troviamo qua, di una tabella per raccogliere i dati, di un file JS e di un controllo Repeater.
Quindi nell'head della pagina:
<link rel="stylesheet" type="text/css" href="Styles/demo_table_jui.css" />
<link rel="stylesheet" type="text/css" href="Styles/ui-lightness/jquery-ui-1.8.23.custom.css" />
<script type="text/javascript" src="Scripts/jquery182.js"></script>
<script type="text/javascript" src="Scripts/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="Scripts/script.js"></script>
I primi due CSS servono per lo stile della tabella; notate che sto facendo uso di un CSS di jQuery UI.
Questa la funzione JS:
$(document).ready(function () {
$('.dtable').dataTable({
"bJQueryUI": true,
"sPaginationType": "full_numbers"
});
});
Con il primo parametro indico di usare lo stile di jQuery UI.