domenica 7 agosto 2016
FT: Buone vacanze ..
Il fuori tema che aspettavo tutto l'anno, un periodo in cui mi fermo un attimo, per poi ripartire con più energie.
Quest'anno per vari motivi non andrò fuori in vacanza, ma di certo cercherò il modo per distrarmi dal computer, anche se sto valutando con un forte interesse la sanità digitale.
Questi primi sei mesi, sono passati in maniera veloce, cambiamenti lavorativi e personali, tante le attività sociali di cui mi sono occupato, amici che poi si sono rivelati quello che non sembrano essere, e persone che si sono aggiunte con amore.
Insomma un primo semestre con moltissimi colori, più belli che non.
Riprenderò a settembre, con gli articoli legati a .Net, Visual Studio 2015 e spero di scrivere qualche articolo su tecnologie diverse, come per esempio IOT, chissà, se il tempo me lo permetterà.
Per ora, auguro a tutti i miei lettori e non solo, anche agli amici, serene vacanze, ci leggiamo a settembre.
venerdì 5 agosto 2016
.Net salvare un file in un database Sql Server tramite Visual Basic Net e C#
Si riporta l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_net-46-salvare-un-fine-in-un-db-sql-serv_1457.aspx
In questo articolo vedremo come salvare un file del nostro pc in un database e precisamente in una base dati basato su servizi, SQL Server.
Inoltre come utilizzare la gestione dei dati tramite Entity Framework, tutto questo verrà realizzato con l’ambiente di sviluppo Visual Studio 2015 utilizzando i linguaggi di programmazione VB.Net e C#.
Creazione del progetto
Prima di tutto, bisogna creare un nuovo progetto di tipo “Windows application”, dovremmo selezionare la voce “Desktop Classico” situata in “Windows”, nel linguaggio di proprio interesse.
A questo punto nella pagina dei modelli (figura 1) selezioneremo la voce “Applicazione Windows Form”.
Figura 1 - La scelta del progetto
Nella form inseriamo un controllo di tipo label, tre controlli di tipo button ed un controllo di tipo “TextBox”, il tutto come mostrato in figura 2
Figura 2 – La form di progettazione.
Ora non ci resta che creare il database.
In esplora soluzione, facciamo click con il tasto destro del mouse sul nome del progetto, nel menu che viene visualizzato selezioniamo la voce “Aggiungi” e poi tramite il sotto menu “Nuovo Elemento”, a questo punto nella finestra che viene aperta, selezioniamo la categoria “Dati” ed il modello “Database basato su servizi”, il tutto come mostrato in figura 3.
A questo punto dobbiamo creare la tabella, che chiameremo “Dati”. La creazione della tabella avviene aprendo il db, tramite doppio click sul file presente nella finestra “Esplora Soluzioni”.
Figura 3 – Il modello di database
Aperta la finestra di esplora server, selezioniamo la voce “Tabella” e facciamo click con il tasto destro, nel menu di scelta rapida selezioniamo “Aggiungi nuova tabella”.
Verrà creata una tabella con un campo denominato “ID” di tipo chiave, aggiungiamo due campi, uno di tipo varchar 50, denominato “NomeFile” e l’altro di tipo “image” con il nome “File”. Questo campo verrà inserito lo stream dei dati.
Il tutto come mostrato in figura 4
Figura 4 – La tabella con i relativi campi
Tramite il pulsante “Update” salviamo le modifiche e poi eseguiamo lo script.
Ora non ci resta che aggiungere l’entity Framework, tasto destro sul nome del progetto in esplora soluzione, e selezioniamo la voce “Aggiungi” e poi “Nuovo Elemento”, a questo punto, nella finestra che viene aperta, selezioniamo la categoria “Dati” e poi il modello di tipo “Ado.Net Entity Data Model”, il tutto come mostrato in figura 3.
Stesura del codice
Abbiamo terminato la progettazione del nostro semplice applicativo gestione, ora dobbiamo scrivere il codice per la selezione del file, il salvataggio dei dati e la relativa creazione del file.
Aggiungiamo lo spazio dei nomi per la gestione dei file e stream.
Qui di seguito tale dichiarazione.
Per il pulsante “seleziona”, dobbiamo visualizzare una finestra di dialogo che riporta nella casella di testo il percorso e nome del file.
Qui di seguito le suddette operazioni per entrambi i linguaggi.
dlgFile.Multiselect
= false;
dlgFile.ShowDialog();
Per il pulsante “Salva su db” dobbiamo scrivere il codice, che tramite istruzione di entity framework, salva i dati, mettendo nel campo “File” lo stream dati del file, e nel campo “NomeFile” il nome del file.
Qui di seguito il frammento di codice per tale pulsante.
Siamo giunti a conclusione dell’articolo, dobbiamo scrivere il codice per la generazione dei file, dato lo stream dati salvato sul db, generiamo su un percorso preciso il file.
Qui di seguito il frammento di codice per entrambi i linguaggi.
BinaryWriter binaryScrivi;
binaryScrivi.Flush();
fs.Close();
Conclusioni
L’articolo ha fornito le basi per creare un semplice gestionale, utilizzabile anche come applicativo di tipo gestione documentale, per il salvataggio dei file su un database.
Si è voluto affrontare appositivamente vari scenari, quali utilizzo di entity framework, campi db speciali (image) linq to entity, il tutto con il nuovo ambiente di sviluppo Visual Studio 2015.
In questo articolo vedremo come salvare un file del nostro pc in un database e precisamente in una base dati basato su servizi, SQL Server.
Inoltre come utilizzare la gestione dei dati tramite Entity Framework, tutto questo verrà realizzato con l’ambiente di sviluppo Visual Studio 2015 utilizzando i linguaggi di programmazione VB.Net e C#.
Creazione del progetto
Prima di tutto, bisogna creare un nuovo progetto di tipo “Windows application”, dovremmo selezionare la voce “Desktop Classico” situata in “Windows”, nel linguaggio di proprio interesse.
A questo punto nella pagina dei modelli (figura 1) selezioneremo la voce “Applicazione Windows Form”.
Figura 1 - La scelta del progetto
Nella form inseriamo un controllo di tipo label, tre controlli di tipo button ed un controllo di tipo “TextBox”, il tutto come mostrato in figura 2
Figura 2 – La form di progettazione.
Ora non ci resta che creare il database.
In esplora soluzione, facciamo click con il tasto destro del mouse sul nome del progetto, nel menu che viene visualizzato selezioniamo la voce “Aggiungi” e poi tramite il sotto menu “Nuovo Elemento”, a questo punto nella finestra che viene aperta, selezioniamo la categoria “Dati” ed il modello “Database basato su servizi”, il tutto come mostrato in figura 3.
A questo punto dobbiamo creare la tabella, che chiameremo “Dati”. La creazione della tabella avviene aprendo il db, tramite doppio click sul file presente nella finestra “Esplora Soluzioni”.
Figura 3 – Il modello di database
Aperta la finestra di esplora server, selezioniamo la voce “Tabella” e facciamo click con il tasto destro, nel menu di scelta rapida selezioniamo “Aggiungi nuova tabella”.
Verrà creata una tabella con un campo denominato “ID” di tipo chiave, aggiungiamo due campi, uno di tipo varchar 50, denominato “NomeFile” e l’altro di tipo “image” con il nome “File”. Questo campo verrà inserito lo stream dei dati.
Il tutto come mostrato in figura 4
Figura 4 – La tabella con i relativi campi
Tramite il pulsante “Update” salviamo le modifiche e poi eseguiamo lo script.
Ora non ci resta che aggiungere l’entity Framework, tasto destro sul nome del progetto in esplora soluzione, e selezioniamo la voce “Aggiungi” e poi “Nuovo Elemento”, a questo punto, nella finestra che viene aperta, selezioniamo la categoria “Dati” e poi il modello di tipo “Ado.Net Entity Data Model”, il tutto come mostrato in figura 3.
Stesura del codice
Abbiamo terminato la progettazione del nostro semplice applicativo gestione, ora dobbiamo scrivere il codice per la selezione del file, il salvataggio dei dati e la relativa creazione del file.
Aggiungiamo lo spazio dei nomi per la gestione dei file e stream.
Qui di seguito tale dichiarazione.
VB.Net
Imports System.IO
C#
using System.IO;
Per il pulsante “seleziona”, dobbiamo visualizzare una finestra di dialogo che riporta nella casella di testo il percorso e nome del file.
Qui di seguito le suddette operazioni per entrambi i linguaggi.
VB.Net
Private Sub BtnSeleziona_Click(sender As Object, e As EventArgs) Handles BtnSeleziona.Click
Dim
dlgFile As New OpenFileDialog
dlgFile.Title = "Seleziona un file da importare"
dlgFile.Multiselect = False
dlgFile.FileName = ""
dlgFile.ShowDialog()
txtPercorso.Text = dlgFile.FileName
End Sub
C#
private void BtnSeleziona_Click(object sender, EventArgs e)
{
OpenFileDialog dlgFile = new OpenFileDialog();
dlgFile.Title = "Seleziona un file da importare";
dlgFile.FileName = "";
txtPercorso.Text =
dlgFile.FileName;
}
Per il pulsante “Salva su db” dobbiamo scrivere il codice, che tramite istruzione di entity framework, salva i dati, mettendo nel campo “File” lo stream dati del file, e nel campo “NomeFile” il nome del file.
Qui di seguito il frammento di codice per tale pulsante.
VB.Net
Private Sub btnSalva_Click(sender As Object, e As EventArgs) Handles btnSalva.Click
If (txtPercorso.Text = String.Empty)
Then
Return
End If
Dim fs As FileStream = New FileStream(txtPercorso.Text, FileMode.OpenOrCreate, FileAccess.Read)
Dim ImgData() As Byte = New Byte((fs.Length) - 1) {}
fs.Read(ImgData, 0, System.Convert.ToInt32(fs.Length))
fs.Close()
Try
Dim entita As Database1Entities = New Database1Entities
Dim
dato As Dati = New Dati
dato.File = ImgData
dato.NomeFile = Path.GetFileName(txtPercorso.Text)
entita.Dati.Add(dato)
entita.SaveChanges()
MessageBox.Show("File salvato con successo")
Catch ex As Exception
MessageBox.Show(("Errore: " +
ex.Message))
End
Try
End Sub
C#
private void btnSalva_Click(object sender, EventArgs e)
{
if (txtPercorso.Text == string.Empty)
{
return;
}
FileStream fs = new FileStream(txtPercorso.Text, FileMode.OpenOrCreate, FileAccess.Read);
Byte[] ImgData = new Byte[fs.Length];
fs.Read(ImgData, 0, System.Convert.ToInt32(fs.Length));
fs.Close();
try
{
Database1Entities entita = new Database1Entities();
Dati dato = new Dati();
dato.File = ImgData;
dato.NomeFile = Path.GetFileName(txtPercorso.Text);
entita.Dati.Add(dato);
entita.SaveChanges();
MessageBox.Show("File salvato con successo");
}
catch (Exception ex)
{
MessageBox.Show("Errore: " +
ex.Message);
}
}
Siamo giunti a conclusione dell’articolo, dobbiamo scrivere il codice per la generazione dei file, dato lo stream dati salvato sul db, generiamo su un percorso preciso il file.
Qui di seguito il frammento di codice per entrambi i linguaggi.
VB.Net
Private Sub BtnCreaFile_Click(sender As Object, e As EventArgs) Handles BtnCreaFile.Click
Dim fs As FileStream
Dim binaryScrivi As BinaryWriter
Dim outbyte() As Byte = New Byte(((300000 - 1)) - 1) {}
Dim entita As Database1Entities = New Database1Entities
Dim
risultato = (From dati In entita.Dati Select dati).ToList()
Dim totale As Integer = risultato.Count
fs = New FileStream(("E:\" + risultato.ToList(0).NomeFile), FileMode.OpenOrCreate, FileAccess.Write)
binaryScrivi = New BinaryWriter(fs)
binaryScrivi.Write(risultato.ToList(0).File)
binaryScrivi.Flush()
binaryScrivi.Close()
fs.Close()
MessageBox.Show(("File creato con successo: " + ("E:\" +
risultato.ToList(0).NomeFile)))
End Sub
C#
private void BtnCreaFile_Click(object sender, EventArgs e)
{
FileStream fs;
Byte[] outbyte = new Byte[300000 - 1];
Database1Entities entita = new Database1Entities();
var
risultato = (from dati in entita.Dati select dati).ToList();
int totale = risultato.Count();
fs = new FileStream("E:\\" + risultato.ToList()[0].NomeFile,
FileMode.OpenOrCreate, FileAccess.Write);
binaryScrivi = new BinaryWriter(fs);
binaryScrivi.Write(risultato.ToList()[0].File);
binaryScrivi.Close();
MessageBox.Show("File creato con successo: " + "E:\\" +
risultato.ToList()[0].NomeFile);
}
Conclusioni
L’articolo ha fornito le basi per creare un semplice gestionale, utilizzabile anche come applicativo di tipo gestione documentale, per il salvataggio dei file su un database.
Si è voluto affrontare appositivamente vari scenari, quali utilizzo di entity framework, campi db speciali (image) linq to entity, il tutto con il nuovo ambiente di sviluppo Visual Studio 2015.
Iscriviti a:
Post (Atom)