Schnellstart: Verwenden von .NET (C#) zum Abfragen einer Datenbank

Gilt für: Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics

In dieser Schnellstartanleitung verwenden Sie .NET und C#-Code, um eine Verbindung mit einer Datenbank herzustellen. Anschließend führen Sie eine Transact-SQL-Anweisung zum Abfragen von Daten aus. Diese Schnellstartanleitung gilt für Windows, Linux und macOS unter Verwendung der einheitlichen .NET-Plattform.

Tipp

In diesem kostenlosen Learn-Modul wird Folgendes gezeigt: Entwickeln und Konfigurieren einer ASP.NET-Anwendung zum Abfragen einer Azure SQL-Datenbank

Voraussetzungen

Für die Durchführung dieses Schnellstarts benötigen Sie Folgendes:

Erstellen eines neuen .NET-Projekts

  1. Öffnen Sie eine Eingabeaufforderung, und erstellen Sie einen Ordner namens sqltest. Navigieren Sie zu diesem Ordner, und führen Sie den folgenden Befehl aus:

    dotnet new console
    

    Mit diesem Befehl werden neue App-Projektdateien erstellt, darunter eine erste C#-Codedatei (Program.cs), eine XML-Konfigurationsdatei (sqltest.csproj) und erforderliche Binärdateien.

  2. Führen Sie an der oben verwendeten Eingabeaufforderung den folgenden Befehl aus.

    dotnet add package Microsoft.Data.SqlClient
    

    Mit diesem Befehl wird dem Projekt das Paket Microsoft.Data.SqlClient hinzugefügt.

Einfügen von Code zum Abfragen der Datenbank in Azure SQL-Datenbank

  1. Öffnen Sie Program.cs in einem Text-Editor wie Visual Studio Code.

  2. Ersetzen Sie den Inhalt durch den folgenden Code, und fügen Sie die entsprechenden Werte für Server, Datenbank, Benutzername und Kennwort hinzu.

Hinweis

Um eine ADO.NET-Verbindungszeichenfolge zu verwenden, ersetzen Sie die 4 Zeilen in der Codeeinstellung von Server, Datenbank, Benutzername und Kennwort durch die folgende Zeile. Geben Sie in der Zeichenfolge Ihren Benutzernamen und Ihr Kennwort ein.

builder.ConnectionString="<your_ado_net_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 = "<your_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();
        }
    }
}

Denken Sie daran, <your_server.database.windows.net>, <your_username>, <your_password>, und <your_database> durch Ihre tatsächlichen SQL-Server-Daten zu ersetzen. Ersetzen Sie /* specific error number */ außerdem durch die tatsächliche SQL-Fehlernummer, die Sie behandeln möchten.

Ausführen des Codes

  1. Führen Sie an der Eingabeaufforderung die folgenden Befehle aus:

    dotnet restore
    dotnet run
    
  2. Überprüfen Sie, ob die Zeilen zurückgegeben werden. Ihre Ausgabe kann andere Werte enthalten.

    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. Drücken Sie die EINGABETASTE, um das Anwendungsfenster zu schließen.