Dela via


Snabbstart: Använd .NET (C#) för att fråga en databas

gäller för:Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

I den här snabbstarten använder du .NET-- och C#-kod för att ansluta till en databas. Sedan kör du en Transact-SQL-instruktion för att fråga efter data. Den här snabbstarten gäller för Windows, Linux och macOS och utnyttjar den enhetliga .NET-plattformen.

Förutsättningar

För att slutföra den här snabbstarten behöver du:

Skapa ett nytt .NET-projekt

  1. Öppna en kommandotolk och skapa en mapp med namnet sqltest. Gå till den här mappen och kör det här kommandot.

    dotnet new console
    

    Det här kommandot skapar nya appprojektfiler, inklusive en första C#-kodfil (Program.cs), en XML-konfigurationsfil (sqltest.csproj) och nödvändiga binärfiler.

  2. Kör det här kommandot i kommandotolken ovan.

    dotnet add package Microsoft.Data.SqlClient
    

    Det här kommandot lägger till Microsoft.Data.SqlClient-paketet i projektet.

Infoga kod för att fråga databasen i Azure SQL Database

  1. Öppna Program.csi en textredigerare som Visual Studio Code.

  2. Ersätt innehållet med följande kod och lägg till lämpliga värden för din server, databas, användarnamn och lösenord.

Anmärkning

Om du vill använda en ADO.NET anslutningssträng ersätter du de 4 raderna i kodinställningen server, databas, användarnamn och lösenord med raden nedan. I strängen anger du användarnamn och lösenord.

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();
        }
    }
}

Kom ihåg att ersätta <your_server.database.windows.net>, <your_username>, <password>och <your_database> med din faktiska SQL Server-information. Ersätt också /* specific error number */ med det faktiska SQL-felnumret som du vill hantera.

Kör koden

  1. Kör följande kommandon i kommandotolken.

    dotnet restore
    dotnet run
    
  2. Kontrollera att raderna returneras. Dina utdata kan innehålla andra värden.

    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. Välj Ange för att stänga programfönstret.