LA CAMPANA

C'è chi legge questa notizia prima di te.
Iscriviti per ricevere articoli freschi.
E-mail
Nome
Cognome
Come vuoi leggere The Bell
Niente spam

Un esempio di creazione di un database locale di Microsoft SQL Server inMS Visual Studio

Questo argomento mostra la soluzione al problema della creazione di un database di tipo SQL Server utilizzando MS Visual Studio. Sono considerati i seguenti problemi:

  • funziona con la finestra Esplora server in MS Visual Studio;
  • creazione di un database locale come SQL Server Database;
  • creazione di tabelle nel database;
  • modifica delle strutture delle tabelle;
  • collegare tra loro tabelle di database;
  • inserendo dati in tabelle usando MS Visual Studio.

L'obiettivo

Utilizzando gli strumenti di MS Visual Studio, creare un database del tipo MS SQL Server denominato Education. Il database contiene due tabelle Student e Session. Le tabelle sono interconnesse da alcuni campi.

La struttura del primo tavolo Student.

La struttura della seconda tabella è "Sessione".

Prestazione

1. Scarica MS Visual Studio.

2. Attivafinestra  Esplora server

Per lavorare con i database, Microsoft offre un server di database Microsoft SQL Server leggero. Esistono diverse versioni di Microsoft SQL Server, ad esempio: Microsoft SQL Server 2005, Microsoft SQL Server 2008, Microsoft SQL Server 2014 e altre versioni.

È possibile scaricare queste versioni dal sito Web Microsoft www.msdn.com.

Questo server è ottimo per lavorare con i database. È gratuito e ha un'interfaccia grafica per la creazione e l'amministrazione di database tramite lo strumento di gestione di SQL Server.

Prima di tutto, prima di creare il database, è necessario attivare l'utilità Esplora server. Per fare questo, in MS Visual Studio devi chiamare (Fig. 1)

   Visualizza -\u003e Esplora server

Figura. 1. Chiamare Esplora server

Dopo la chiamata, la finestra Esplora server avrà una vista approssimativa, come mostrato nella Figura 2.

Figura. 2. Finestra Esplora server

3. Creazione del database "Istruzione".

Per creare un nuovo database basato sul provider di dati di Microsoft SQL Server, fare clic sul nodo Connessioni dati e quindi selezionare " Crea nuovo database SQL Server ..."(Fig. 3).

Figura. 3. Chiamata al comando di creazione del database di SQL Server

Di conseguenza, il " Crea nuovo database SQL Server"(Fig. 4).

La finestra (nel campo "Nome server") indica il nome del server locale installato sul tuo computer. Nel nostro caso, il nome è "SQLEXPRESS".

Il campo "Nome nuovo database:" indica il nome del database da creare. Nel nostro caso, questo è il nome Istruzione.

L'opzione Usa autenticazione di Windows deve essere lasciata invariata e fare clic su OK.

Figura. 4. Creazione di un nuovo database SQL Server 2008 Express utilizzando MS Visual Studio 2010

Una volta completate le azioni, la finestra Esplora server apparirà come mostrato nella Figura 5. Come si può vedere dalla Figura 5, un database Education con il nome

sasha-pc \\ sqlexpress.Education.dbo

Figura. 5. Finestra Esplora server dopo aver aggiunto il database Education

4. Oggetti del database Education.

Se si espande il database Education (il segno "+"), è possibile visualizzare un elenco dei seguenti oggetti principali:

  • Diagrammi di database - diagrammi di database. I diagrammi mostrano le relazioni tra le tabelle del database, le relazioni tra i campi di diverse tabelle, ecc .;
  • Tabelle: tabelle in cui vengono inseriti i dati del database;
  • Viste - viste. La differenza tra viste e tabelle è che le tabelle del database contengono dati e le viste dei dati non li contengono e il contenuto viene selezionato da altre tabelle o viste;
  • Le stored procedure sono stored procedure. Sono un gruppo di istruzioni SQL correlate, che offrono ulteriore flessibilità quando si lavora con il database.

5. Creazione della tabella Studenti.

Al momento, il database Education è completamente vuoto e non contiene alcun oggetto (tabelle, procedure memorizzate, viste, ecc.).

Per creare una tabella, è necessario richiamare il menu contestuale (tasto destro) e selezionare il comando "Aggiungi nuova tabella" (Figura 6).

Figura. 6. Aggiungi nuovo comando da tavolo

C'è un'altra opzione per aggiungere una tabella di database usando i comandi del menu Dati:

   Dati -\u003e Aggiungi nuovo -\u003e Tabella

Figura. 7. Alternativa per aggiungere una nuova tabella

Di conseguenza, si apre la finestra per l'aggiunta di una tabella, che contiene tre colonne (Figura 8). Nella prima colonna "Nome colonna" è necessario inserire il nome del campo corrispondente della tabella del database. Nella seconda colonna "Tipo di dati" è necessario inserire il tipo di dati di questo campo. La terza colonna "Consenti null" indica l'opzione dell'assenza di dati nel campo.

Figura. 8. Finestra per la creazione di una nuova tabella

Utilizzando l'editor di tabelle, è necessario creare la tabella Student come mostrato nella Figura 9. Il nome della tabella deve essere impostato quando è chiuso.

Nell'editor della tabella, è possibile impostare le proprietà del campo nella finestra Proprietà colonna. Per impostare la lunghezza della stringa (nvchar) in caratteri, nella finestra Proprietà colonna è presente una proprietà Lunghezza. Il valore predefinito per questa proprietà è 10.

Figura. 9. Tavolo dello studente

Il prossimo passo è impostare il campo chiave. Questo viene fatto chiamando il comando "Imposta chiave primaria" dal menu contestuale del campo Num_book. Utilizzando il campo chiave, verranno stabilite le relazioni tra le tabelle. Nel nostro caso, il campo chiave è il numero del registro.

Figura. 10. Impostazione del campo chiave

Dopo aver impostato la chiave primaria, la finestra della tabella apparirà come mostrato nella Figura 11.

Figura. 11. Tavolo dello studente dopo la formazione finale

Ora puoi chiudere il tavolo. Nella finestra per il salvataggio della tabella, è necessario specificarne il nome - Studente (Fig. 12).

Figura. 12. Immettere il nome della tabella Studente

6. Creazione di una tabella di sessione.

Seguendo il modello per la creazione della tabella Student, viene creata la tabella Session.

La Figura 13 mostra l'aspetto della tabella delle sessioni dopo la formazione finale. La chiave primaria è impostata nel campo Num_book. Il nome della tabella è impostato da Sessione.

Figura. 13. Tabella delle sessioni

Dopo le azioni eseguite, due tabelle Studente e Sessione verranno visualizzate nella finestra Esplora server.

Pertanto, qualsiasi numero di tabelle può essere aggiunto al database.

7. Modifica della struttura della tabella.

Ci sono momenti in cui è necessario modificare la struttura della tabella del database.

Per apportare modifiche alle tabelle del database in MS Visual Studio, è innanzitutto necessario deselezionare l'opzione "Impedisci salvataggio modifiche che richiedono la ricostruzione della tabella"Come mostrato nella Figura 14. In caso contrario, MS Visual Studio bloccherà le modifiche alla tabella precedentemente creata. La finestra Opzioni mostrata nella Figura 14 viene richiamata dal menu Strumenti nella seguente sequenza:

Strumenti -\u003e Opzioni -\u003e Strumenti database -\u003e Progettazione tabelle e database

Figura. 14. Opzione " Impedisci il salvataggio delle modifiche che richiedono la ricostruzione della tabella

Dopo l'impostazione, è possibile modificare la struttura della tabella. Per fare ciò, utilizzare il comando "Apri definizione tabella" (Figura 15) dal menu contestuale, che viene richiamato per la tabella selezionata (tasto destro del mouse).

Figura. 15. Richiamo del comando "Apri definizione tabella"

Questo comando si trova anche nel menu Dati:

   Dati -\u003e Apri definizione tabella

In precedenza, la tabella doveva essere selezionata.

8. Stabilire relazioni tra le tabelle.

In base alle condizioni del problema, le tabelle sono interconnesse dal campo Num_book.

Per creare una relazione tra le tabelle, è innanzitutto necessario (Figura 16):

  • seleziona un diagramma del database
  • seleziona il comando Aggiungi nuovo diagramma dal menu contestuale (o dal menu Dati).

Figura. 16. Richiamo del comando Aggiungi nuovo grafico

Di conseguenza, si aprirà la finestra per l'aggiunta di un nuovo diagramma Aggiungi tabella (Figura 17). In questa finestra, è necessario selezionare due tabelle Sessione e Studente in sequenza e fare clic sul pulsante Aggiungi.

Figura. 17. Finestra per l'aggiunta di tabelle a un grafico

Figura. 18. Tabelle degli studenti e delle sessioni dopo averle aggiunte al grafico

Per iniziare a stabilire una relazione tra le tabelle, è necessario fare clic sul campo Num_book della tabella Student e quindi (senza rilasciare il pulsante del mouse) trascinarlo nel campo Num_book della tabella Session.

Di conseguenza, si apriranno in sequenza due finestre: Tabelle e colonne (Fig. 19) e Relazione chiave esterna (Fig. 20), in cui è necessario lasciare tutto così com'è e confermare la scelta con OK.

Nella finestra Tabelle e colonne, vengono impostati il \u200b\u200bnome della relazione (FK_Session_Student) e il nome delle tabelle padre (Studente) e figlio.

Figura. 19. Finestra Tabelle e colonne

Figura. 20. La finestra per l'impostazione delle proprietà della relazione

Dopo le azioni eseguite, verrà stabilita la relazione tra le tabelle (Figura 21).

Figura. 21. La relazione tra i tavoli Student e Session

Salvare un grafico equivale a salvare una tabella. Il nome del grafico deve essere scelto a propria discrezione (ad esempio, Diagramma1).

Dopo aver specificato il nome del diagramma, si apre la finestra Salva, in cui è necessario confermare la scelta (Figura 22).

Figura. 22. Conferma del salvataggio delle modifiche alle tabelle

9. Immissione dei dati nelle tabelle.

Microsoft Visual Studio consente di inserire direttamente i dati nelle tabelle del database.

Nel nostro caso, quando è stata stabilita una connessione (Fig. 19), la tabella Studente è stata selezionata come primaria (Tabella chiavi primarie). Pertanto, per prima cosa devi inserire i dati nelle celle di questa particolare tabella. Se si tenta di inserire prima i dati nella tabella Sessioni, il sistema bloccherà questo input con il messaggio corrispondente.

Per chiamare la modalità di immissione dati nella tabella Studente, è necessario chiamare il comando Mostra dati tabella dal menu contestuale (tasto destro del mouse) o dal menu Dati (Fig. 23).

Figura. 23. Mostra comando dati tabella

Si aprirà una finestra in cui è necessario inserire i dati di input (Fig. 24).

Figura. 24. Immissione dei dati nella tabella Studenti

Dopo aver inserito i dati nella tabella Studente, è necessario inserire i dati nella tabella Sessione.

Quando si immettono i dati nel campo Num_book della tabella Session, è necessario immettere esattamente gli stessi valori immessi nel campo Num_book della tabella Student (poiché questi campi sono interconnessi).

Ad esempio, se si immettono valori nel campo Num_book della tabella Studente “101”, “102”, “103”   (vedi Fig. 24), quindi questi valori devono essere inseriti nel campo Num_book della tabella Session. Se si tenta di inserire un valore diverso, il sistema visualizzerà approssimativamente la seguente finestra (Fig. 25).

Figura. 25. Tabelle relative al messaggio di errore di immissione dati Studente e sessione

La tabella delle sessioni con i dati inseriti è mostrata nella Figura 26.

Nella finestra Esplora server, in cui le tabelle del database su Microsoft SQL Server sono presentate sotto forma di un albero (vedere la Fig. 4.1.), Per ciascuna tabella è possibile aprire la finestra facendo clic sul pulsante Mostra dati tabella. È in questa finestra che è possibile modificare i dati della tabella. Questa finestra di modifica appare approssimativamente come mostrato in Fig. 4.2. Approssimativamente, perché l'intero volume non è incluso nell'immagine a causa dell'elevato numero di colonne.

      1. Implementazione della mappatura del database

Il mapping del database (componente DataSet) è necessario per escludere chiamate non necessarie al database e al server. Questa è una caratteristica molto importante, perché se molti utenti lavorano con il database, il carico sul server può essere piuttosto elevato: il numero di richieste è molte volte maggiore, il che rallenterà l'esecuzione delle richieste.

Pertanto, a causa del DataSet, il computer del client visualizza il database con cui funziona. Al termine, i database client e server vengono sincronizzati (o meglio, le modifiche apportate al database client vengono apportate al database server)

La mappatura del nostro database su MS Visual Studio 2005 è la seguente:

Tutti i dati numerici sono di tipo Int32 e string è String. Le dimensioni dei dati delle stringhe corrispondono a quelle fornite nel modello fisico del database.

Lo screenshot mostra che in ogni tabella ci sono anche TableAdapter. Questi sono alcuni tipi di bridge per il collegamento di DataSet e origine dati. Esistono metodi come Fill e GetData ()

Questo metodo è progettato per riempire la tabella con i dati necessari dall'origine (file di database)

    Metodo GetData ()

Progettato per acquisire dati da una tabella di mappatura.

    1. Implementazione del software

La caratteristica principale nell'implementazione del software è il fatto che tutte le classi responsabili della modifica delle tabelle del database sono ereditate da una classe base, il che ne rende conveniente l'implementazione. I metodi di questa classe di base sono stati descritti sopra. I metodi virtuali della classe base devono essere sovrapposti nella classe discendente. Tutti questi metodi consentono di modificare i parametri del discendente: il nome dell'intestazione del modulo, compilando e salvando la tabella del database desiderata (una classe discendente funziona con una sola tabella, nel senso di modificare i dati; tuttavia, quando si visualizzano i dati per l'utente, è possibile utilizzare diverse tabelle del database al fine di visualizzare i dati in un formato intuitivo).

      1. Interfaccia del programma

La finestra principale è un'applicazione MDI che ha il seguente menu:

Ciascuna delle tabelle per la modifica del database viene richiamata dalla corrispondente voce di menu "Tabelle".

Viene inoltre creato un rapporto sul carico degli insegnanti facendo clic sulla corrispondente voce di menu "Rapporti".

Come funzionalità aggiuntiva del software, esiste una voce di menu "Console" che consente di eseguire query SQL sul database immesso dall'utente e visualizzare il risultato in una tabella (componente DataTable). Per fare questo, ovviamente, è necessario conoscere i nomi di tabelle e campi e, fondamentalmente, è stato creato con l'obiettivo di comodità nell'implementazione del software, ma anche altri utenti "dedicati" possono trarne vantaggio.

In questo articolo imparerai cos'è LINQ e come usarlo per interrogare gli elenchi.

Che cos'è LINQ? Language Integrated Query (LINQ) è un linguaggio di query integrate, o piuttosto un progetto misto di Microsoft per aggiungere una sintassi del linguaggio di query simile a SQL. Una definizione specifica, con questo strumento è possibile creare query relativamente facilmente su tabelle ed elenchi di dati, non necessariamente un database.

Gli esempi di Microsoft mancano di un piccolo ma importante dettaglio. Per lavorare con il set di dati, è necessario utilizzare la struttura DataContext, la cui definizione può essere ottenuta utilizzando SPMetal.exe per l'elenco o la libreria presente sul server Sharepoint. In altre parole, dobbiamo prima determinare questo tipo di dati, quindi creare una query, in genere consiglio di utilizzare un'utilità speciale per lavorare in MVS: Imtech Get SPMetal Definition Extension.

Per lavoro abbiamo bisogno di un elenco. Usiamo un semplice elenco - "elenco personalizzato"; nome - "Appello semplice"; campi predefiniti: Numero, Nome.

E così, creiamo uno semplice (vedi la pagina corrispondente), con l'aiuto del quale osserveremo il risultato delle nostre manipolazioni. Quando creiamo un progetto, sceglieremo un modello di trust isolato, se è necessario lavorare con elenchi o dati di altri nodi, è necessario creare un progetto per la farm.

Successivamente, crea un file chiamato classe "SimpleClass.cs" utilizzando SPMetal.exe o un plug-in per lo studio. Aggiungi un collegamento alla libreria Microsoft.Sharepoint.Linq. Per ulteriori informazioni, consultare MSDN.

Crea una funzione Render e my_mess. Nell'ultima funzione, genereremo i dati per la visualizzazione.

// sovraccarica la funzione
override protetto void Render (HtmlTextWriter writer)
{
base .Render (sceneggiatore);
  my_mess (sceneggiatore);
}

// La nostra funzione per lavorare con un elenco
public void my_mess (scrittore HtmlTextWriter)
{
// Crea un contesto
  DataContext data \u003d new DataContext ("http: // localhost");
// Collegalo all'elenco corrispondente sul sito nella radice
  Entitylist<Элемент>  Simple_Message \u003d data.GetList<Элемент>("Appello semplice");
// Esegui la richiesta: selezionare tutte le linee dall'elenco "Chiamata semplice"
var query \u003d from mess in Simple_Message
seleziona pasticcio;
// visualizza tutti i dati dal risultato della query
foreach (var elem in query)
{
  writer.WriteLine ( "Elenco elemento:"  + elem. Name. ToString ());
  writer.WriteBreak ();
}

}

Compiliamo il progetto e lo aggiungiamo alla pagina. Di conseguenza, vengono visualizzate tutte le righe nell'elenco.

Continua in seguito (l'articolo non è finito) ...

Annotazione: Dopo aver letto questa lezione, è possibile: creare query utilizzando la Progettazione query di SQL Server Management Studio, estrarre le informazioni del database dalle tabelle di sistema del database, creare dinamicamente query semplici in base all'input dell'utente, formattare l'input dell'utente e filtrare query dinamiche complesse, eseguire l'analisi e riformattare i dati da utilizzare nel filtro, proteggere il database da attacchi come "SQL-injection", utilizzare la procedura sp_executeSql per trasferire la richiesta

La lezione precedente parlava di come aumentare prestazione  interrogazioni. Ora sai come creare un insieme efficace di query per fornire agli utenti le informazioni più utili dalla tua applicazione utilizzando query pre-create in stored procedure o viste.

Tuttavia, in qualsiasi applicazione, ad eccezione della più semplice, è impossibile conoscere in anticipo tutte le possibili opzioni per i tipi di informazioni di cui gli utenti potrebbero aver bisogno e come vogliono filtrarle e organizzarle. Invece di cercare di prevedere tutte queste possibilità, è possibile fornire all'utente il controllo sulle informazioni comunicate dall'applicazione. Questa lezione spiega come costruire dinamicamente query basate sulle scelte che l'utente fa durante l'esecuzione di un ciclo di lavoro.

Interfaccia utente per la creazione di query

SQL Server Management Studio include un'interfaccia sofisticata per la creazione di query. Esploriamo questa interfaccia in modo da avere un'idea di come è possibile creare query in modo dinamico. La tua applicazione non avrà bisogno di tutto controllifornito da SQL Server Management Studio. In effetti, è necessario considerare attentamente come limitare al meglio le scelte degli utenti.

Creare una query utilizzando Progettazione query di SQL Server Management Studio

Recupero delle informazioni sulla tabella del database

Per fornire all'utente un elenco di parametri, l'applicazione potrebbe dover recuperare informazioni sulle tabelle del database. Esistono diversi modi per ottenere queste informazioni. Il più importante di questi metodi è l'uso dello schema INFORMATION_SCHEMA. Questo schema è standard in qualsiasi database.

Applicazione INFORMATION_SCHEMA

Lo schema INFORMATION_SCHEMA è uno schema speciale esistente in ogni database. Contiene definizioni di alcuni oggetti di database.

INFORMATION_SCHEMA è conforme allo standard ANSI, progettato per estrarre informazioni da qualsiasi motore di database compatibile ANSI. In SQL Server, INFORMATION_SCHEMA è costituito da un insieme di viste che interrogano le tabelle del database sys * contenenti informazioni sulla struttura del database. È possibile eseguire query direttamente su queste tabelle, proprio come qualsiasi tabella di database. Tuttavia, nella maggior parte dei casi, per estrarre informazioni dalle tabelle * sys, è meglio usare le viste dello schema INFORMATION_SCHEMA.

Nota. Lo schema INFORMATION_SCHEMA talvolta interroga le tabelle che non sono necessarie, il che è dannoso per le prestazioni. Nel seguente esempio di questa lezione, ciò non è particolarmente importante, poiché l'applicazione stava già aspettando l'input dell'utente. Tuttavia, questo dovrebbe essere considerato se la velocità è un aspetto importante per la tua applicazione.

Ecco il codice T-SQL di base che viene utilizzato per recuperare informazioni sulle colonne incluse nella tabella:

Si noti che per ottenere lo schema per la tabella, selezionare il campo TABLE_SCHEMA. Ciò può essere importante per la creazione di query simili in futuro. Per sperimentare i metodi descritti in questo capitolo, creare un nuovo progetto in Visual Studio.

Crea un nuovo progetto di Visual Studio
  1. Dal menu Start, selezionare Tutti i programmi, Microsoft Visual Studiio 2005, Microsoft Visual Studio 2005.
  2. Dal menu di Visual Studio, selezionare File, Nuovo, Progetto.
  3. Nel pannello Tipi di progetto, espandete il nodo Visual Basic e selezionate il modello Applicazione nel pannello Modelli. Assegna al progetto il nome Chapter7 e fai clic su OK.
  4. L'applicazione per questo esempio è disponibile nei file di esempio nella cartella \\ Chapter7 \\ DynQuery. È possibile tagliare e incollare il codice per le seguenti procedure dal file Form1.vb.
Recupero di un elenco di tabelle e viste

Di norma, dovrai dare all'utente la possibilità di selezionare non solo le colonne, ma anche la tabella per la query dinamica, quindi devi visualizzare un elenco di tabelle per l'utente. Le informazioni necessarie possono essere ottenute utilizzando la seguente query:

SELEZIONA TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE DA INFORMATION_SCHEMA.TABLES

Nell'applicazione, questa query può essere utilizzata come segue.

Ottieni un elenco di tabelle

Il codice Visual Basic sopra inizializza un oggetto SqlCommand denominato com con la stringa SQL da eseguire, quindi esegue l'oggetto SqlCommand. Questo è il modo più semplice per eseguire un'istruzione T-SQL dall'interno di un'applicazione.

Come esercizio, è possibile posizionare i diagrammi e le tabelle ottenuti durante l'esecuzione della procedura Load del nostro modulo nell'interfaccia utente dell'applicazione sotto forma di un modulo in modo che l'utente possa selezionare il diagramma e la tabella per il lavoro. Nell'esempio di questo capitolo, supponiamo che l'utente abbia selezionato lo schema di vendita e la tabella Clienti.

Dopo che l'utente ha selezionato una tabella, è possibile recuperare l'elenco di colonne per questa tabella utilizzando lo stesso metodo, utilizzando l'input dell'utente come nome della tabella nella query. A tale scopo, immettere un sostituto nella stringa della query, quindi sostituire questo sostituto con una chiamata String.Format. Nel codice seguente, il sostituto nella stringa di query è (0).

Ottieni un elenco di colonne
  1. Aggiungere la seguente procedura RetrieveColumns al codice sotto la procedura RetrieveTables:

    Sub RetrieveColumns (ByVal TableName As String) MyConnection As New SqlClient.SqlConnection (_ "Data Source \u003d. \\ SQLExpress;" & _ "Catalogo iniziale \u003d AdventureWorks; Trusted_Connection \u003d Yes;") Dim sqlStr As String sqlStr \u003d "SELECT TABLE_SCHEMA, , COLUMN_NAME, "+ _" ORDINAL_POSITION, DATA_TYPE "+ _" FROM INFORMATION_SCHEMA.COLUMNS "+ _" WHERE (TABLE_NAME \u003d "(0)") "Dim tableColumns As New DataTable Dim da As New SqlClient.SqlDataAdorm ( (sqlStr, TableName), MyConnection) da.Fill (tableColumns) Per i As Integer \u003d 0 A tableColumns.Rows.Count - 1 Con tableColumns.Rows.Item (i) Console.WriteLine ("(0) (1) (2) ) ", _ .Item (1), .Item (2), .Item (3)) End With Next End Sub

  2. Nella procedura Form1_Load, aggiungere la seguente chiamata della procedura RetrieveColumns dopo la procedura RetrieveTables:

LA CAMPANA

C'è chi legge questa notizia prima di te.
Iscriviti per ricevere articoli freschi.
E-mail
Nome
Cognome
Come vuoi leggere The Bell
Niente spam