Udostępnij za pośrednictwem


Szybki start: wykonywanie zapytań względem bazy danych przy użyciu platformy .NET (C#)

Dotyczy: Azure SQL Database Azure SQL Managed InstanceAzure Synapse Analytics

W tym przewodniku Szybki start użyjesz platformy .NET i kodu języka C#, aby nawiązać połączenie z bazą danych. Następnie uruchomisz instrukcję języka Transact-SQL w celu wykonania zapytania na danych. Ten przewodnik Szybki start dotyczy systemów Windows, Linux i macOS oraz korzysta z ujednoliconej platformy .NET.

Napiwek

W tym bezpłatnym module Learn pokazano, jak opracowywać i konfigurować aplikację ASP.NET, która wysyła zapytania do bazy danych w usłudze Azure SQL Database

Wymagania wstępne

Aby ukończyć ten przewodnik Szybki Start, musisz spełnić następujące warunki:

Tworzenie nowego projektu .NET

  1. Otwórz wiersz polecenia i utwórz folder o nazwie sqltest. Przejdź do tego folderu i uruchom to polecenie.

    dotnet new console
    

    To polecenie tworzy nowe pliki projektu aplikacji, w tym początkowy plik kodu C# (Program.cs), plik konfiguracyjny XML (sqltest.csproj) i potrzebne pliki binarne.

  2. W wierszu polecenia użytym powyżej uruchom to polecenie.

    dotnet add package Microsoft.Data.SqlClient
    

    To polecenie dodaje Microsoft.Data.SqlClient pakiet do projektu.

Wstawianie kodu w celu wykonywania zapytań dotyczących bazy danych w usłudze Azure SQL Database

  1. W edytorze tekstów, takim jak Visual Studio Code, otwórz Program.cs.

  2. Zastąp jego zawartość następującym kodem i dodaj odpowiednie wartości dla serwera, bazy danych, nazwy użytkownika i hasła.

Uwaga

Aby użyć parametrów połączenia sterownika ADO.NET, zastąp cztery wiersze kodu, które ustawiają serwer, bazę danych, nazwę użytkownika i hasło, za pomocą poniższego wiersza. W parametrach ustaw swoją nazwę użytkownika i hasło.

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

Pamiętaj, aby zastąpić <your_server.database.windows.net>wartości , <your_username>, <your_password>i <your_database> rzeczywistymi szczegółami programu SQL Server. Zastąp również /* specific error number */ rzeczywistym numerem błędu SQL, który chcesz obsłużyć.

Uruchamianie kodu

  1. W wierszu polecenia uruchom następujące polecenia.

    dotnet restore
    dotnet run
    
  2. Sprawdź, czy wiersze są zwracane, dane wyjściowe mogą zawierać inne wartości.

    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. Wybierz klawisz Enter, aby zamknąć okno aplikacji.