Delen via


Quickstart: .NET (C#) gebruiken om een query uit te voeren op een database

van toepassing op:Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics-

In deze quickstart gebruikt u .NET-- en C#-code om verbinding te maken met een database. Vervolgens voert u een Transact-SQL instructie uit om een query uit te voeren op gegevens. Deze quickstart is van toepassing op Windows, Linux en macOS en maakt gebruik van het geïntegreerde .NET-platform.

Vereiste voorwaarden

U hebt het volgende nodig om deze quickstart te voltooien:

Een nieuw .NET-project maken

  1. Open een opdrachtprompt en maak een map met de naam sqltest. Navigeer naar deze map en voer deze opdracht uit.

    dotnet new console
    

    Met deze opdracht maakt u nieuwe app-projectbestanden, waaronder een initiële C#-codebestand (Program.cs), een XML-configuratiebestand (sqltest.csproj) en de benodigde binaire bestanden.

  2. Voer deze opdracht uit vanaf de bovenstaande opdrachtprompt.

    dotnet add package Microsoft.Data.SqlClient
    

    Met deze opdracht wordt het Microsoft.Data.SqlClient-pakket aan het project toegevoegd.

Code invoegen om een query uit te voeren op de database in Azure SQL Database

  1. Open Program.csin een teksteditor zoals Visual Studio Code.

  2. Vervang de inhoud door de volgende code en voeg de juiste waarden toe voor uw server, database, gebruikersnaam en wachtwoord.

Notitie

Als u een ADO.NET verbindingsreeks wilt gebruiken, vervangt u de vier regels in de code-instelling van de server, database, gebruikersnaam en wachtwoord door de onderstaande regel. Stel uw gebruikersnaam en wachtwoord in de tekenreeks in.

builder.ConnectionString="<connection-string>";

using Microsoft.Data.SqlClient;
using System;
using System.Threading.Tasks;

namespace sqltest
{
    class Program
    {
        static async Task Main(string[] args)
        {
            var builder = new SqlConnectionStringBuilder
            {
                DataSource = "<your_server.database.windows.net>",
                UserID = "<your_username>",
                Password = "<password>",
                InitialCatalog = "<your_database>"
            };

            var connectionString = builder.ConnectionString;

            try
            {
                await using var connection = new SqlConnection(connectionString);
                Console.WriteLine("\nQuery data example:");
                Console.WriteLine("=========================================\n");

                await connection.OpenAsync();

                var sql = "SELECT name, collation_name FROM sys.databases";
                await using var command = new SqlCommand(sql, connection);
                await using var reader = await command.ExecuteReaderAsync();

                while (await reader.ReadAsync())
                {
                    Console.WriteLine("{0} {1}", reader.GetString(0), reader.GetString(1));
                }
            }
            catch (SqlException e) when (e.Number == /* specific error number */)
            {
                Console.WriteLine($"SQL Error: {e.Message}");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }

            Console.WriteLine("\nDone. Press enter.");
            Console.ReadLine();
        }
    }
}

Vergeet niet om <your_server.database.windows.net>, <your_username>, <password>en <your_database> te vervangen door uw werkelijke SQL Server-gegevens. Vervang ook /* specific error number */ door het werkelijke SQL-foutnummer dat u wilt verwerken.

De code uitvoeren

  1. Voer bij de prompt de volgende opdrachten uit.

    dotnet restore
    dotnet run
    
  2. Controleer of de rijen worden geretourneerd. De uitvoer kan andere waarden bevatten.

    Query data example:
    =========================================
    
    master    SQL_Latin1_General_CP1_CI_AS
    tempdb    SQL_Latin1_General_CP1_CI_AS
    WideWorldImporters    Latin1_General_100_CI_AS
    
    Done. Press enter.
    
  3. Kies Enter om het toepassingsvenster te sluiten.