Progettare un database SQL di Azure e connettersi con C# e ADO.NETDesign an Azure SQL database and connect with C# and ADO.NET

Il database SQL di Azure è un database relazionale distribuito come servizio, ovvero DBaaS, in Microsoft Cloud (Azure).Azure SQL Database is a relational database-as-a service (DBaaS) in the Microsoft Cloud (Azure). In questa esercitazione viene illustrato come usare il portale di Azure e ADO.NET con Visual Studio per eseguire queste operazioni:In this tutorial, you learn how to use the Azure portal and ADO.NET with Visual Studio to:

  • Creare un database nel portale di AzureCreate a database in the Azure portal
  • Impostare una regola del firewall a livello di server nel portale di AzureSet up a server-level firewall rule in the Azure portal
  • Connettersi al database con ADO.NET e Visual StudioConnect to the database with ADO.NET and Visual Studio
  • Creare tabelle con ADO.NETCreate tables with ADO.NET
  • Inserire, aggiornare ed eliminare dati con ADO.NETInsert, update, and delete data with ADO.NET
  • Eseguire query sui dati con ADO.NETQuery data ADO.NET

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.If you don't have an Azure subscription, create a free account before you begin.

PrerequisitiPrerequisites

Un'installazione di Visual Studio Community 2017, Visual Studio Professional 2017 o Visual Studio Enterprise 2017.An installation of Visual Studio Community 2017, Visual Studio Professional 2017, or Visual Studio Enterprise 2017.

Accedere al Portale di Azure.Log in to the Azure portal

Accedere al Portale di Azure.Log in to the Azure portal.

Creare un database SQL vuotoCreate a blank SQL database

Un database SQL di Azure viene creato con un set definito di risorse di calcolo e di archiviazione.An Azure SQL database is created with a defined set of compute and storage resources. Il database viene creato in un gruppo di risorse di Azure e in un server logico di database SQL di Azure.The database is created within an Azure resource group and in an Azure SQL Database logical server.

Per creare un database SQL vuoto, attenersi alla procedura seguente.Follow these steps to create a blank SQL database.

  1. Fare clic sul pulsante Nuovo nell'angolo superiore sinistro del portale di Azure.Click the New button found on the upper left-hand corner of the Azure portal.

  2. Selezionare Database dalla pagina Nuovo, quindi selezionare Crea in Database SQL nella pagina Nuovo.Select Databases from the New page, and select Create under SQL Database on the New page.

    creare database vuoto

  3. Compilare il modulo Database SQL con le informazioni seguenti, come illustrato nell'immagine precedente:Fill out the SQL Database form with the following information, as shown on the preceding image:

    ImpostazioneSetting       Valore consigliatoSuggested value DescrizioneDescription
    Database name (Nome database)Database name mySampleDatabasemySampleDatabase Per i nomi di database validi, vedere Database Identifiers (Identificatori di database).For valid database names, see Database Identifiers.
    SottoscrizioneSubscription Sottoscrizione in usoYour subscription Per informazioni dettagliate sulle sottoscrizioni, vedere Subscriptions (Sottoscrizioni).For details about your subscriptions, see Subscriptions.
    Gruppo di risorseResource group myResourceGroupmyResourceGroup Per i nomi di gruppi di risorse validi, vedere Naming rules and restrictions (Regole di denominazione e restrizioni).For valid resource group names, see Naming rules and restrictions.
    Select source (Seleziona origine)Select source Database vuotoBlank database Indica che deve essere creato un database vuoto.Specifies that a blank database should be created.
  4. Fare clic su Server per creare e configurare un nuovo server per il nuovo database.Click Server to create and configure a new server for your new database. Compilare il modulo del nuovo server con le informazioni seguenti:Fill out the New server form with the following information:

    ImpostazioneSetting       Valore consigliatoSuggested value DescrizioneDescription
    Server name (Nome server)Server name Qualsiasi nome globalmente univocoAny globally unique name Per i nomi di server validi, vedere Naming rules and restrictions (Regole di denominazione e restrizioni).For valid server names, see Naming rules and restrictions.
    Nome di accesso amministratore serverServer admin login Qualsiasi nome validoAny valid name Per i nomi di accesso validi, vedere Database Identifiers (Identificatori di database).For valid login names, see Database Identifiers.
    PasswordPassword Qualsiasi password validaAny valid password La password deve almeno 8 caratteri e contenere caratteri inclusi in tre delle categorie seguenti: caratteri maiuscoli, caratteri minuscoli, numeri e caratteri non alfanumerici.Your password must have at least 8 characters and must contain characters from three of the following categories: upper case characters, lower case characters, numbers, and non-alphanumeric characters.
    PosizioneLocation Qualsiasi località validaAny valid location Per informazioni sulle aree, vedere Aree di Azure.For information about regions, see Azure Regions.

    Creare il server di database

  5. Fare clic su Seleziona.Click Select.

  6. Fare clic su Piano tariffario per specificare il livello di servizio, il numero di DTU e la quantità di risorse di archiviazione.Click Pricing tier to specify the service tier, the number of DTUs, and the amount of storage. Esplorare le opzioni relative alla quantità di DTU e di risorse di archiviazione disponibile per ogni livello di servizio.Explore the options for the amount of DTUs and storage that is available to you for each service tier.

  7. Per questa esercitazione selezionare il livello di servizio Standard e quindi usare il dispositivo di scorrimento per selezionare 100 DTU (S3) e 400 GB di archiviazione.For this tutorial, select the Standard service tier and then use the slider to select 100 DTUs (S3) and 400 GB of storage.

    Creare il database s1

  8. Accettare le condizioni dell'anteprima per usare l'opzione Spazio di archiviazione aggiuntivo.Accept the preview terms to use the Add-on Storage option.

    Importante

    * Le dimensioni di archiviazione superiori alla quantità di risorse di archiviazione incluse sono disponibili in anteprima e vengono applicati costi aggiuntivi.* Storage sizes greater than the amount of included storage are in preview and extra costs apply. Per ulteriori informazioni, vedere Database SQL Prezzi.For details, see SQL Database pricing.

    * Nel livello Premium sono attualmente disponibili più di 1 TB di risorse di archiviazione nelle aree seguenti: Stati Uniti orientali 2, Stati Uniti occidentali, US Gov Virginia, Europa occidentale, Germania centrale, Asia sud-orientale, Giappone orientale, Australia orientale, Canada centrale e Canada orientale.* In the Premium tier, more than 1 TB of storage is currently available in the following regions: US East2, West US, US Gov Virginia, West Europe, Germany Central, South East Asia, Japan East, Australia East, Canada Central, and Canada East. Vedere Limitazioni correnti per P11-P15.See P11-P15 Current Limitations.

  9. Dopo la selezione del livello di servizio, del numero di DTU e della quantità di risorse di archiviazione, fare clic su Applica.After selecting the server tier, the number of DTUs, and the amount of storage, click Apply.

  10. Selezionare regole di confronto per il database vuoto. Per questa esercitazione usare il valore predefinito.Select a collation for the blank database (for this tutorial, use the default value). Per altre informazioni sulle regole di confronto, vedere Collations (Regole di confronto)For more information about collations, see Collations

  11. Fare clic su Crea per effettuare il provisioning del database.Click Create to provision the database. Il provisioning richiede circa un minuto e mezzo per il completamento.Provisioning takes about a minute and a half to complete.

  12. Sulla barra degli strumenti fare clic su Notifiche per monitorare il processo di distribuzione.On the toolbar, click Notifications to monitor the deployment process.

    notifica

Creare una regola del firewall a livello di serverCreate a server-level firewall rule

Il servizio di database SQL crea un firewall a livello di server che impedisce alle applicazioni e agli strumenti esterni di connettersi al server o ai database sul server a meno che non venga creata una regola del firewall per aprire il firewall per indirizzi IP specifici.The SQL Database service creates a firewall at the server-level that prevents external applications and tools from connecting to the server or any databases on the server unless a firewall rule is created to open the firewall for specific IP addresses. Seguire questi passaggi per creare una regola del firewall a livello di server di database SQL per l'indirizzo IP del client e abilitare la connettività esterna tramite il firewall del database SQL solo per il proprio indirizzo IP.Follow these steps to create a SQL Database server-level firewall rule for your client's IP address and enable external connectivity through the SQL Database firewall for your IP address only.

Nota

Il database SQL comunica attraverso la porta 1433.SQL Database communicates over port 1433. Se si sta tentando di connettersi da una rete aziendale, il traffico in uscita attraverso la porta 1433 potrebbe non essere autorizzato dal firewall della rete.If you are trying to connect from within a corporate network, outbound traffic over port 1433 may not be allowed by your network's firewall. In questo caso, non è possibile connettersi al server del database SQL di Azure, a meno che il reparto IT non apra la porta 1433.If so, you cannot connect to your Azure SQL Database server unless your IT department opens port 1433.

  1. Al termine della distribuzione, scegliere Database SQL dal menu a sinistra e fare clic su mySampleDatabase nella pagina Database SQL.After the deployment completes, click SQL databases from the left-hand menu and then click mySampleDatabase on the SQL databases page. Si apre la pagina di panoramica per il database che visualizza il nome completo del server, ad esempio mynewserver20170824.database.windows.net, e offre altre opzioni di configurazione.The overview page for your database opens, showing you the fully qualified server name (such as mynewserver20170824.database.windows.net) and provides options for further configuration.

  2. Copiare il nome completo del server per connettersi al server e ai relativi database nelle guide introduttive successive.Copy this fully qualified server name for use to connect to your server and its databases in subsequent quick starts.

    Nome del server

  3. Fare clic su Imposta firewall server sulla barra degli strumenti.Click Set server firewall on the toolbar. Si apre la pagina Impostazioni del firewall per il server del database SQL.The Firewall settings page for the SQL Database server opens.

    Regola del firewall del server

  4. Fare clic su Aggiungi IP client sulla barra degli strumenti per aggiungere l'indirizzo IP corrente a una nuova regola del firewall.Click Add client IP on the toolbar to add your current IP address to a new firewall rule. Una regola del firewall può aprire la porta 1433 per un indirizzo IP singolo o un intervallo di indirizzi IP.A firewall rule can open port 1433 for a single IP address or a range of IP addresses.

  5. Fare clic su Salva.Click Save. Viene creata una regola del firewall a livello di server per l'indirizzo IP corrente, che apre la porta 1433 nel server logico.A server-level firewall rule is created for your current IP address opening port 1433 on the logical server.

  6. Fare clic su OK e quindi chiudere la pagina Impostazioni del firewall.Click OK and then close the Firewall settings page.

È ora possibile connettersi al server del database SQL e ai relativi database usando SQL Server Management Studio o un altro strumento di propria scelta da questo indirizzo IP, con l'account amministratore del server creato in precedenza.You can now connect to the SQL Database server and its databases using SQL Server Management Studio or another tool of your choice from this IP address using the server admin account created previously.

Importante

Per impostazione predefinita, l'accesso attraverso il firewall del database SQL è abilitato per tutti i servizi di Azure.By default, access through the SQL Database firewall is enabled for all Azure services. Selezionando NO in questa pagina permette di disabilitare tutti i servizi di Azure.Click OFF on this page to disable for all Azure services.

Informazioni di connessione SQL ServerSQL server connection information

Ottenere il nome completo del server per il server del database SQL di Azure nel portale di Azure.Get the fully qualified server name for your Azure SQL Database server in the Azure portal. Usare il nome completo del server per connettersi al server tramite SQL Server Management Studio.You use the fully qualified server name to connect to your server using SQL Server Management Studio.

  1. Accedere al Portale di Azure.Log in to the Azure portal.
  2. Scegliere Database SQL dal menu a sinistra, quindi fare clic sul database nella pagina Database SQL.Select SQL Databases from the left-hand menu, and click your database on the SQL databases page.
  3. Nel riquadro Informazioni di base della pagina del portale di Azure per il database individuare e quindi copiare il Nome server.In the Essentials pane in the Azure portal page for your database, locate and then copy the Server name.

    informazioni di connessione

Esempio di programma C#C# program example

Le sezioni successive di questo articolo presentano un programma C# che usa ADO.NET per inviare istruzioni Transact-SQL al database SQL.The next sections of this article present a C# program that uses ADO.NET to send Transact-SQL statements to the SQL database. Il programma C# esegue le azioni seguenti:The C# program performs the following actions:

  1. Connessione al database SQL tramite ADO.NET.Connects to our SQL database using ADO.NET.
  2. Creazione di tabelle.Creates tables.
  3. Popolamento delle tabelle con dati, tramite l'emissione di istruzioni T-SQL INSERT.Populates the tables with data, by issuing T-SQL INSERT statements.
  4. Aggiornamento dei dati tramite un join.Updates data by use of a join.
  5. Eliminazione dei dati tramite un join.Deletes data by use of a join.
  6. Selezione di righe di dati tramite join.Selects data rows by use of a join.
  7. Chiusura della connessione, con rilascio di eventuali tabelle temporanee da tempdb.Closes the connection (which drops any temporary tables from tempdb).

Il programma C# contiene:The C# program contains:

  • Codice C# per la connessione al database.C# code to connect to the database.
  • Metodi che restituiscono il codice sorgente di T-SQL.Methods that return the T-SQL source code.
  • Due metodi che inviano il codice T-SQL al database.Two methods that submit the T-SQL to the database.

Per la compilazione e l'esecuzioneTo compile and run

Questo programma C# è costituito logicamente da un file con estensione cs.This C# program is logically one .cs file. In questo caso il programma è suddiviso fisicamente in diversi blocchi di codice, in modo da semplificare la visualizzazione e la comprensione di ogni blocco.But here the program is physically divided into several code blocks, to make each block easier to see and understand. Per compilare ed eseguire questo programma, seguire questa procedura:To compile and run this program, do the following:

  1. Creare un progetto C# in Visual Studio.Create a C# project in Visual Studio.
    • Il tipo di progetto deve essere un'applicazione console, da un elemento simile alla gerarchia seguente: Modelli > Visual C# > Desktop classico di Windows > App console (.NET Framework).The project type should be a console application, from something like the following hierarchy: Templates > Visual C# > Windows Classic Desktop > Console App (.NET Framework).
  2. Nel file Program.cs cancellare le brevi righe iniziali del codice.In the file Program.cs, erase the small starter lines of code.
  3. In Program.cs copiare e incollare ogni blocco seguente nella stessa sequenza riportata.Into Program.cs, copy and paste each of the following blocks, in the same sequence they are presented here.
  4. In Program.cs modificare i valori seguenti nel metodo Main:In Program.cs, edit the following values in the Main method:

    • cb.DataSourcecb.DataSource
    • cd.UserIDcd.UserID
    • cb.Passwordcb.Password
    • InitialCatalogInitialCatalog
  5. Verificare che sia presente un riferimento all'assembly System.Data.dll.Verify that the assembly System.Data.dll is referenced. Per la verifica, espandere il nodo Riferimenti nel riquadro Esplora soluzioni.To verify, expand the References node in the Solution Explorer pane.

  6. Per compilare il programma in Visual Studio, fare clic sul menu Compila.To build the program in Visual Studio, click the Build menu.
  7. Per eseguire il programma da Visual Studio, fare clic sul pulsante Start.To run the program from Visual Studio, click the Start button. L'output del report viene visualizzato in una finestra di cmd.exe.The report output is displayed in a cmd.exe window.

Nota

È possibile modificare il codice T-SQL per aggiungere un carattere # davanti ai nomi di tabella, in modo da crearle come tabelle temporanee in tempdb.You have the option of editing the T-SQL to add a leading # to the table names, which creates them as temporary tables in tempdb. Ciò può risultare utile per finalità dimostrative, quando non sono disponibili database di test.This can be useful for demonstration purposes, when no test database is available. Le tabelle temporanee vengono eliminate automaticamente alla chiusura della connessione.Temporary tables are deleted automatically when the connection closes. Eventuali parole chiave REFERENCES per chiavi esterne non vengono applicate per le tabelle temporanee.Any REFERENCES for foreign keys are not enforced for temporary tables.

Blocco C# 1: Connessione tramite ADO.NETC# block 1: Connect by using ADO.NET

using System;
using System.Data.SqlClient;   // System.Data.dll 
//using System.Data;           // For:  SqlDbType , ParameterDirection

namespace csharp_db_test
{
   class Program
   {
      static void Main(string[] args)
      {
         try
         {
            var cb = new SqlConnectionStringBuilder();
            cb.DataSource = "your_server.database.windows.net";
            cb.UserID = "your_user";
            cb.Password = "your_password";
            cb.InitialCatalog = "your_database";

            using (var connection = new SqlConnection(cb.ConnectionString))
            {
               connection.Open();

               Submit_Tsql_NonQuery(connection, "2 - Create-Tables",
                  Build_2_Tsql_CreateTables());

               Submit_Tsql_NonQuery(connection, "3 - Inserts",
                  Build_3_Tsql_Inserts());

               Submit_Tsql_NonQuery(connection, "4 - Update-Join",
                  Build_4_Tsql_UpdateJoin(),
                  "@csharpParmDepartmentName", "Accounting");

               Submit_Tsql_NonQuery(connection, "5 - Delete-Join",
                  Build_5_Tsql_DeleteJoin(),
                  "@csharpParmDepartmentName", "Legal");

               Submit_6_Tsql_SelectEmployees(connection);
            }
         }
         catch (SqlException e)
         {
            Console.WriteLine(e.ToString());
         }
         Console.WriteLine("View the report output here, then press any key to end the program...");
         Console.ReadKey();
      }

Blocco C# 2: T-SQL per la creazione di tabelleC# block 2: T-SQL to create tables

      static string Build_2_Tsql_CreateTables()
      {
         return @"
DROP TABLE IF EXISTS tabEmployee;
DROP TABLE IF EXISTS tabDepartment;  -- Drop parent table last.


CREATE TABLE tabDepartment
(
   DepartmentCode  nchar(4)          not null
      PRIMARY KEY,
   DepartmentName  nvarchar(128)     not null
);

CREATE TABLE tabEmployee
(
   EmployeeGuid    uniqueIdentifier  not null  default NewId()
      PRIMARY KEY,
   EmployeeName    nvarchar(128)     not null,
   EmployeeLevel   int               not null,
   DepartmentCode  nchar(4)              null
      REFERENCES tabDepartment (DepartmentCode)  -- (REFERENCES would be disallowed on temporary tables.)
);
";
      }

Diagramma entità-relazioneEntity Relationship Diagram (ERD)

Le istruzioni CREATE TABLE precedenti usano la parola chiave REFERENCES per creare una relazione chiavi esterne tra le due tabelle.The preceding CREATE TABLE statements involve the REFERENCES keyword to create a foreign key (FK) relationship between two tables. Se si usa tempdb, impostare come commento la parola chiave --REFERENCES usando una coppia di trattini iniziali.If you are using tempdb, comment out the --REFERENCES keyword using a pair of leading dashes.

Il diagramma entità-relazione mostra la relazione tra le due tabelle.Next is an ERD that displays the relationship between the two tables. I valori nella colonna #tabEmployee.DepartmentCode figlio sono limitati ai valori presenti nella colonna #tabDepartment.Department padre.The values in the #tabEmployee.DepartmentCode child column are limited to the values present in the #tabDepartment.Department parent column.

Diagramma entità-relazione che mostra una chiave esterna

Blocco C# 3: T-SQL per l'inserimento di datiC# block 3: T-SQL to insert data

      static string Build_3_Tsql_Inserts()
      {
         return @"
-- The company has these departments.
INSERT INTO tabDepartment
   (DepartmentCode, DepartmentName)
      VALUES
   ('acct', 'Accounting'),
   ('hres', 'Human Resources'),
   ('legl', 'Legal');

-- The company has these employees, each in one department.
INSERT INTO tabEmployee
   (EmployeeName, EmployeeLevel, DepartmentCode)
      VALUES
   ('Alison'  , 19, 'acct'),
   ('Barbara' , 17, 'hres'),
   ('Carol'   , 21, 'acct'),
   ('Deborah' , 24, 'legl'),
   ('Elle'    , 15, null);
";
      }

Blocco C# 4: T-SQL per l'aggiornamento tramite joinC# block 4: T-SQL to update-join

      static string Build_4_Tsql_UpdateJoin()
      {
         return @"
DECLARE @DName1  nvarchar(128) = @csharpParmDepartmentName;  --'Accounting';


-- Promote everyone in one department (see @parm...).
UPDATE empl
   SET
      empl.EmployeeLevel += 1
   FROM
      tabEmployee   as empl
      INNER JOIN
      tabDepartment as dept ON dept.DepartmentCode = empl.DepartmentCode
   WHERE
      dept.DepartmentName = @DName1;
";
      }

Blocco C# 5: T-SQL per l'eliminazione tramite joinC# block 5: T-SQL to delete-join

      static string Build_5_Tsql_DeleteJoin()
      {
         return @"
DECLARE @DName2  nvarchar(128);
SET @DName2 = @csharpParmDepartmentName;  --'Legal';


-- Right size the Legal department.
DELETE empl
   FROM
      tabEmployee   as empl
      INNER JOIN
      tabDepartment as dept ON dept.DepartmentCode = empl.DepartmentCode
   WHERE
      dept.DepartmentName = @DName2

-- Disband the Legal department.
DELETE tabDepartment
   WHERE DepartmentName = @DName2;
";
      }

Blocco C# 6: T-SQL per la selezione di righeC# block 6: T-SQL to select rows

      static string Build_6_Tsql_SelectEmployees()
      {
         return @"
-- Look at all the final Employees.
SELECT
      empl.EmployeeGuid,
      empl.EmployeeName,
      empl.EmployeeLevel,
      empl.DepartmentCode,
      dept.DepartmentName
   FROM
      tabEmployee   as empl
      LEFT OUTER JOIN
      tabDepartment as dept ON dept.DepartmentCode = empl.DepartmentCode
   ORDER BY
      EmployeeName;
";
      }

Blocco C# 6b: ExecuteReaderC# block 6b: ExecuteReader

Questo metodo è progettato per l'esecuzione dell'istruzione T-SQL SELECT compilata dal metodo Build_6_Tsql_SelectEmployees.This method is designed to run the T-SQL SELECT statement that is built by the Build_6_Tsql_SelectEmployees method.

      static void Submit_6_Tsql_SelectEmployees(SqlConnection connection)
      {
         Console.WriteLine();
         Console.WriteLine("=================================");
         Console.WriteLine("Now, SelectEmployees (6)...");

         string tsql = Build_6_Tsql_SelectEmployees();

         using (var command = new SqlCommand(tsql, connection))
         {
            using (SqlDataReader reader = command.ExecuteReader())
            {
               while (reader.Read())
               {
                  Console.WriteLine("{0} , {1} , {2} , {3} , {4}",
                     reader.GetGuid(0),
                     reader.GetString(1),
                     reader.GetInt32(2),
                     (reader.IsDBNull(3)) ? "NULL" : reader.GetString(3),
                     (reader.IsDBNull(4)) ? "NULL" : reader.GetString(4));
               }
            }
         }
      }

Blocco C# 7: ExecuteNonQueryC# block 7: ExecuteNonQuery

Questo metodo viene chiamato per operazioni che modificano il contenuto dei dati delle tabelle senza restituire alcuna riga di dati.This method is called for operations that modify the data content of tables without returning any data rows.

      static void Submit_Tsql_NonQuery(
         SqlConnection connection,
         string tsqlPurpose,
         string tsqlSourceCode,
         string parameterName = null,
         string parameterValue = null
         )
      {
         Console.WriteLine();
         Console.WriteLine("=================================");
         Console.WriteLine("T-SQL to {0}...", tsqlPurpose);

         using (var command = new SqlCommand(tsqlSourceCode, connection))
         {
            if (parameterName != null)
            {
               command.Parameters.AddWithValue(  // Or, use SqlParameter class.
                  parameterName,
                  parameterValue);
            }
            int rowsAffected = command.ExecuteNonQuery();
            Console.WriteLine(rowsAffected + " = rows affected.");
         }
      }
   } // EndOfClass
}

Blocco C# 8: Output del test effettivo nella consoleC# block 8: Actual test output to the console

Questa sezione acquisisce l'output inviato dal programma alla console.This section captures the output that the program sent to the console. Solo i valori GUID variano tra le esecuzioni dei test.Only the guid values vary between test runs.

[C:\csharp_db_test\csharp_db_test\bin\Debug\]
>> csharp_db_test.exe

=================================
Now, CreateTables (10)...

=================================
Now, Inserts (20)...

=================================
Now, UpdateJoin (30)...
2 rows affected, by UpdateJoin.

=================================
Now, DeleteJoin (40)...

=================================
Now, SelectEmployees (50)...
0199be49-a2ed-4e35-94b7-e936acf1cd75 , Alison , 20 , acct , Accounting
f0d3d147-64cf-4420-b9f9-76e6e0a32567 , Barbara , 17 , hres , Human Resources
cf4caede-e237-42d2-b61d-72114c7e3afa , Carol , 22 , acct , Accounting
cdde7727-bcfd-4f72-a665-87199c415f8b , Elle , 15 , NULL , NULL

[C:\csharp_db_test\csharp_db_test\bin\Debug\]
>>

Passaggi successiviNext steps

Questa esercitazione ha illustrato le attività di base che è possibile eseguire con i database, come creare database e tabelle, caricare dati, eseguire query sui dati e ripristinare un database a un momento precedente.In this tutorial, you learned basic database tasks such as create a database and tables, load and query data, and restore the database to a previous point in time. Si è appreso come:You learned how to:

  • Creare un databaseCreate a database
  • Configurare una regola del firewallSet up a firewall rule
  • Connettersi al database con Visual Studio e C#Connect to the database with Visual Studio and C#
  • Creare tabelleCreate tables
  • Inserire, aggiornare ed eliminare i datiInsert, update, and delete data
  • Eseguire query sui datiQuery data

Passare all'esercitazione successiva per ottenere informazioni sulla migrazione dei dati.Advance to the next tutorial to learn about migrating your data.