Procedura dettagliata: utilizzo solo di stored procedure (Visual Basic)Walkthrough: Using Only Stored Procedures (Visual Basic)

In questa procedura dettagliata viene descritto uno scenario LINQ to SQLLINQ to SQL end-to-end di base per l'accesso ai dati usando solo stored procedure.This walkthrough provides a basic end-to-end LINQ to SQLLINQ to SQL scenario for accessing data by using stored procedures only. Questo approccio viene spesso è usato dagli amministratori di database per limitare l'accesso all'archivio dati.This approach is often used by database administrators to limit how the datastore is accessed.

Nota

È inoltre possibile usare stored procedure nelle applicazioni LINQ to SQLLINQ to SQL per eseguire l'override del comportamento predefinito, specialmente per i processi Create, Update e Delete.You can also use stored procedures in LINQ to SQLLINQ to SQL applications to override default behavior, especially for Create, Update, and Delete processes. Per ulteriori informazioni, vedere personalizzazione di operazioni di inserimento, aggiornamento ed eliminare.For more information, see Customizing Insert, Update, and Delete Operations.

Per le finalità di questa procedura dettagliata si utilizzeranno due metodi di cui è stato eseguito il mapping alle stored procedure CustOrdersDetail e CustOrderHist nel database di esempio Northwind.For purposes of this walkthrough, you will use two methods that have been mapped to stored procedures in the Northwind sample database: CustOrdersDetail and CustOrderHist. Il mapping viene applicato quando si esegue lo strumento da riga di comando SqlMetal per generare un file di Visual Basic.The mapping occurs when you run the SqlMetal command-line tool to generate a Visual Basic file. Per altre informazioni, vedere la sezione successiva relativa ai prerequisiti.For more information, see the Prerequisites section later in this walkthrough.

Questa procedura dettagliata non si basa su Object Relational DesignerObject Relational Designer.This walkthrough does not rely on the Object Relational DesignerObject Relational Designer. Gli sviluppatori che usano Visual Studio è possono usare anche il O/R DesignerO/R Designer per implementare funzionalità delle stored procedure.Developers using Visual Studio can also use the O/R DesignerO/R Designer to implement stored procedure functionality. Vedere LINQ to SQL Tools in Visual Studio.See LINQ to SQL Tools in Visual Studio.

Nota

Nomi o percorsi visualizzati per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti potrebbero essere diversi nel computer in uso.Your computer might show different names or locations for some of the Visual Studio user interface elements in the following instructions. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi.The Visual Studio edition that you have and the settings that you use determine these elements. Per altre informazioni, vedere Personalizzazione dell'IDE.For more information, see Personalizing the IDE.

Questa procedura dettagliata è stata scritta usando Impostazioni di sviluppo di Visual Basic.This walkthrough was written by using Visual Basic Development Settings.

PrerequisitiPrerequisites

Per l'esecuzione di questa procedura sono richiesti i seguenti elementi:This walkthrough requires the following:

  • Una cartella dedicata ("c:\linqtest3") in cui inserire i file usati nella procedura dettagliata.This walkthrough uses a dedicated folder ("c:\linqtest3") to hold files. Creare la cartella prima di avviare la procedura.Create this folder before you begin the walkthrough.

  • Il database di esempio Northwind.The Northwind sample database.

    Se questo database non è disponibile nel computer di sviluppo, è possibile scaricarlo dal sito di download Microsoft.If you do not have this database on your development computer, you can download it from the Microsoft download site. Per istruzioni, vedere download dei database di esempio.For instructions, see Downloading Sample Databases. Dopo avere scaricato il database, copiare il file northwnd.mdf nella cartella c:\linqtest3.After you have downloaded the database, copy the northwnd.mdf file to the c:\linqtest3 folder.

  • Un file di codice Visual Basic generato dal database Northwind.A Visual Basic code file generated from the Northwind database.

    Questa procedura dettagliata è stata scritta usando lo strumento SqlMetal con la riga di comando seguente:This walkthrough was written by using the SqlMetal tool with the following command line:

    SQLMetal /code:"c:\linqtest3\northwind.vb" /Language: VB "c:\linqtest3\northwnd.mdf" /sprocs /functions /pluralizesqlmetal /code:"c:\linqtest3\northwind.vb" /language:vb "c:\linqtest3\northwnd.mdf" /sprocs /functions /pluralize

    Per altre informazioni, vedere SqlMetal.exe (strumento per la generazione del codice).For more information, see SqlMetal.exe (Code Generation Tool).

PanoramicaOverview

La procedura dettagliata è costituita da sei attività principali:This walkthrough consists of six main tasks:

  • Impostazione di LINQ to SQLLINQ to SQL soluzione in Visual Studio.Setting up the LINQ to SQLLINQ to SQL solution in Visual Studio.

  • Aggiunta dell'assembly System.Data.Linq al progetto.Adding the System.Data.Linq assembly to the project.

  • Aggiunta del file di codice del database al progetto.Adding the database code file to the project.

  • Creazione di una connessione al database.Creating a connection to the database.

  • Impostazione dell'interfaccia utente.Setting up the user interface.

  • Esecuzione e test dell'applicazione.Running and testing the application.

Creazione di una soluzione LINQ to SQLCreating a LINQ to SQL Solution

In questa prima attività, viene creata una soluzione Visual Studio che contiene i riferimenti necessari per compilare ed eseguire un LINQ to SQLLINQ to SQL progetto.In this first task, you create a Visual Studio solution that contains the necessary references to build and run a LINQ to SQLLINQ to SQL project.

Per creare una soluzione LINQ to SQLTo create a LINQ to SQL solution

  1. Scegliere Nuovo progetto dal menu Filedi Visual Studio.On the Visual Studio File menu, click New Project.

  2. Nel riquadro Tipi progetto della finestra di dialogo Nuovo progetto espandere Visual Basic, quindi fare clic su WindowsIn the Project types pane in the New Project dialog box, expand Visual Basic, and then click Windows.

  3. Nel riquadro Modelli scegliere Applicazione Windows Form.In the Templates pane, click Windows Forms Application.

  4. Nel nome digitare SprocOnlyApp.In the Name box, type SprocOnlyApp.

  5. Fare clic su OK.Click OK.

    Verrà aperto Progettazione Windows Form.The Windows Forms Designer opens.

Aggiunta del riferimento all'assembly LINQ to SQLAdding the LINQ to SQL Assembly Reference

L'assembly LINQ to SQLLINQ to SQL non è incluso nel modello Applicazione Windows Form standard.The LINQ to SQLLINQ to SQL assembly is not included in the standard Windows Forms Application template. Sarà pertanto necessario aggiungere l'assembly manualmente, come descritto nei passaggi seguenti:You will have to add the assembly yourself, as explained in the following steps:

Per aggiungere System.Data.Linq.dllTo add System.Data.Linq.dll

  1. In Esplora, fare clic su Mostra tutti i file.In Solution Explorer, click Show All Files.

  2. In Esplora, fare doppio clic su riferimenti, quindi fare clic su Aggiungi riferimento.In Solution Explorer, right-click References, and then click Add Reference.

  3. Nel Aggiungi riferimento la finestra di dialogo, fare clic su .NET, fare clic sull'assembly LINQ e quindi fare clic su OK.In the Add Reference dialog box, click .NET, click the System.Data.Linq assembly, and then click OK.

    L'assembly verrà aggiunto al progetto.The assembly is added to the project.

Aggiunta del file di codice di Northwind al progettoAdding the Northwind Code File to the Project

In questa procedura si presuppone che sia stato usato lo strumento SqlMetal per generare un file di codice dal database di esempio Northwind.This step assumes that you have used the SqlMetal tool to generate a code file from the Northwind sample database. Per altre informazioni, vedere la sezione precedente relativa ai prerequisiti.For more information, see the Prerequisites section earlier in this walkthrough.

Per aggiungere il file di codice di Northwind al progettoTo add the northwind code file to the project

  1. Nel progetto menu, fare clic su Aggiungi elemento esistente.On the Project menu, click Add Existing Item.

  2. Nel Aggiungi elemento esistente la finestra di dialogo, passare a c:\linqtest3\northwind.vb, quindi fare clic su Aggiungi.In the Add Existing Item dialog box, move to c:\linqtest3\northwind.vb, and then click Add.

    Il file northwind.vb viene aggiunto al progetto.The northwind.vb file is added to the project.

Creazione di connessioni a databaseCreating a Database Connection

In questo passaggio si definirà la connessione al database di esempio Northwind.In this step, you define the connection to the Northwind sample database. Per questa procedura dettagliata viene usato il percorso "c:\linqtest3\northwnd.mdf".This walkthrough uses "c:\linqtest3\northwnd.mdf" as the path.

Per creare la connessione al databaseTo create the database connection

  1. In Esplora, fare doppio clic su Form1. vb, quindi fare clic su Visualizza codice.In Solution Explorer, right-click Form1.vb, and then click View Code.

    Class Form1 verrà visualizzato nell'editor di codice.Class Form1 appears in the code editor.

  2. Digitare il codice riportato di seguito nel blocco di codice Form1.Type the following code into the Form1 code block:

    Dim db As New Northwnd("c:\linqtest3\northwnd.mdf")
    

Impostazione dell'interfaccia utenteSetting up the User Interface

In questa attività verrà creata un'interfaccia per consentire agli utenti di eseguire stored procedure per l'accesso ai dati nel database.In this task you create an interface so that users can execute stored procedures to access data in the database. Nell'applicazione creata con questa procedura dettagliata gli utenti potranno accedere ai dati nel database solo usando le stored procedure incorporate nell'applicazione.In the application that you are developing with this walkthrough, users can access data in the database only by using the stored procedures embedded in the application.

Per impostare l'interfaccia utenteTo set up the user interface

  1. Tornare alle finestre di progettazione form (Form1]).Return to the Windows Forms Designer (Form1.vb[Design]).

  2. Scegliere Casella degli strumenti dal menu Visualizza.On the View menu, click Toolbox.

    Verrà aperta la Casella degli strumenti.The toolbox opens.

    Nota

    Fare clic su di Nascondi automaticamente puntina da disegno per tenere aperta la casella degli strumenti quando si eseguono i rimanenti passaggi in questa sezione.Click the AutoHide pushpin to keep the toolbox open while you perform the remaining steps in this section.

  3. Trascinare due pulsanti, due caselle di testo e due etichette dalla casella degli strumenti Form1.Drag two buttons, two text boxes, and two labels from the toolbox onto Form1.

    Disporre i controlli come raffigurato nell'illustrazione.Arrange the controls as in the accompanying illustration. Espandere Form1 in modo che i controlli adattamento.Expand Form1 so that the controls fit easily.

  4. Fare doppio clic su Label1, quindi fare clic su proprietà.Right-click Label1, and then click Properties.

  5. Modifica il testo proprietà Label1 a Enter OrderID:.Change the Text property from Label1 to Enter OrderID:.

  6. Nello stesso modo per Label2, modificare il testo proprietà Label2 a Enter CustomerID:.In the same way for Label2, change the Text property from Label2 to Enter CustomerID:.

  7. Nello stesso modo, è possibile modificare il testo proprietà Button1 a Order Details.In the same way, change the Text property for Button1 to Order Details.

  8. Modifica il testo proprietà Button2 a cronologia degli ordini.Change the Text property for Button2 to Order History.

    Ampliare i controlli pulsante in modo che tutto il testo sia visibile.Widen the button controls so that all the text is visible.

Per gestire i clic sui pulsantiTo handle button clicks

  1. Fare doppio clic su Order Details su Form1 per creare il Button1 gestore dell'evento e aprire l'editor di codice.Double-click Order Details on Form1 to create the Button1 event handler and open the code editor.

  2. Digitare il codice riportato di seguito nel gestore eventi Button1:Type the following code into the Button1 handler:

    ' Declare a variable to hold the contents of
    ' TextBox1 as an argument for the stored
    ' procedure.
    Dim parm As String = TextBox1.Text
    
    ' Declare a variable to hold the results returned
    ' by the stored procedure.
    Dim custQuery = db.CustOrdersDetail(parm)
    
    ' Clear the message box of previous results.
    Dim msg As String = ""
    Dim response As MsgBoxResult
    
    ' Execute the stored procedure and store the results.
    For Each custOrdersDetail As CustOrdersDetailResult In custQuery
        msg &= custOrdersDetail.ProductName & vbCrLf
    Next
    
    ' Display the results.
    If msg = "" Then
        msg = "No results."
    End If
    response = MsgBox(msg)
    
    ' Clear the variables before continuing.
    parm = ""
    TextBox1.Text = ""
    
  3. Fare doppio clic sul Button2 nel Form1 per creare il Button2 gestore dell'evento e aprire l'editor di codice.Now double-click Button2 on Form1 to create the Button2 event handler and open the code editor.

  4. Digitare il codice riportato di seguito nel gestore eventi Button2:Type the following code into the Button2 handler:

    ' Comments in the code for Button2 are the same
    ' as for Button1.
    Dim parm As String = TextBox2.Text
    
    Dim custQuery2 = db.CustOrderHist(parm)
    Dim msg As String = ""
    Dim response As MsgBoxResult
    
    For Each custOrdHist As CustOrderHistResult In custQuery2
        msg &= custOrdHist.ProductName & vbCrLf
    Next
    
    If msg = "" Then
        msg = "No results."
    End If
    
    response = MsgBox(msg)
    parm = ""
    TextBox2.Text = ""
    

Verifica dell'applicazioneTesting the Application

A questo punto è possibile procedere al test dell'applicazione.Now it is time to test your application. Notare che il contatto con l'archivio dati è limitato alle azioni supportate dalle due stored procedureNote that your contact with the datastore is limited to whatever actions the two stored procedures can take. che, in questo caso, consistono nel restituire i prodotti inclusi per qualsiasi ID ordine immesso o nel restituire una cronologia dei prodotti ordinati per qualsiasi ID cliente immesso.Those actions are to return the products included for any orderID you enter, or to return a history of products ordered for any CustomerID you enter.

Per eseguire il test dell'applicazioneTo test the application

  1. Premere F5 per avviare il debug.Press F5 to start debugging.

    Viene visualizzato Form1.Form1 appears.

  2. Nel Enter OrderID digitare 10249 e quindi fare clic su Order Details.In the Enter OrderID box, type 10249 and then click Order Details.

    I prodotti inclusi nell'ordine 10249 vengono elencati in una finestra di messaggio.A message box lists the products included in order 10249.

    Fare clic su OK per chiudere la finestra di messaggio.Click OK to close the message box.

  3. Nel Enter CustomerID digitare ALFKI, quindi fare clic su cronologia degli ordini.In the Enter CustomerID box, type ALFKI, and then click Order History.

    In una finestra di messaggio viene elencata la cronologia degli ordini per il cliente ALFKI.A message box lists the order history for customer ALFKI.

    Fare clic su OK per chiudere la finestra di messaggio.Click OK to close the message box.

  4. Nel Enter OrderID digitare 123, quindi fare clic su Order Details.In the Enter OrderID box, type 123, and then click Order Details.

    Viene visualizzata una finestra di messaggio con l'indicazione che non è stato trovato alcun risultato.A message box displays "No results."

    Fare clic su OK per chiudere la finestra di messaggio.Click OK to close the message box.

  5. Nel Debug menu, fare clic su interrompere il debug.On the Debug menu, click Stop debugging.

    La sessione di debug viene chiusa.The debug session closes.

  6. Se il termine delle prove, è possibile fare clic su Chiudi progetto sul File menu e salvare il progetto quando viene richiesto.If you have finished experimenting, you can click Close Project on the File menu, and save your project when you are prompted.

Passaggi successiviNext Steps

Questo progetto può essere migliorato apportandovi alcune modifiche.You can enhance this project by making some changes. Ad esempio, è possibile elencare le stored procedure disponibili in una casella di riepilogo, in modo che l'utente possa selezionare quella da eseguire.For example, you could list available stored procedures in a list box and have the user select which procedures to execute. È inoltre possibile trasmettere l'output dei rapporti a un file di testo.You could also stream the output of the reports to a text file.

Vedere ancheSee Also

Apprendimento tramite procedure dettagliateLearning by Walkthroughs
stored procedureStored Procedures