クイックスタート: .NET (C#) を使用してデータベースのクエリを実行する
適用対象: Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics
このクイックスタートでは、.NET と C# コードを使用してデータベースに接続します。 その後、Transact-SQL ステートメントを実行して、データの照会を行います。 このクイックスタートは、Windows、Linux、macOS に適用され、統合された .NET プラットフォームを活用します。
ヒント
この無料の Learn モジュールでは、Azure SQL Database のデータベースに対してクエリを行う ASP.NET アプリケーションを開発および構成する方法を示します
前提条件
このクイック スタートを完了するには、次のものが必要です。
アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
お使いのオペレーティング システム用の .NET SDK がインストールされていること。
クエリを実行できるデータベース。
次のいずれかのクイックスタートを使用して、データベースを作成し、構成できます。
アクション SQL Database SQL Managed Instance Azure VM 上の SQL Server Azure Synapse Analytics 作成 ポータル ポータル ポータル ポータル CLI CLI PowerShell PowerShell PowerShell PowerShell デプロイ テンプレート デプロイ テンプレート デプロイ テンプレート デプロイ テンプレート 構成 サーバーレベルの IP ファイアウォール規則 VM からの接続 接続の設定 オンプレミスからの接続 SQL Server インスタンスに接続する 接続情報の取得 Azure SQL Azure SQL SQL VM Synapse SQL
新しい .NET プロジェクトの作成
コマンド プロンプトを開き、sqltest という名前のフォルダーを作成します。 このフォルダーに移動して、次のコマンドを実行します。
dotnet new console
このコマンドにより、初期 C# コード ファイル (Program.cs)、XML 構成ファイル (sqltest.csproj)、必要なバイナリなど、新しいアプリ プロジェクト ファイルが作成されます。
上記で使用されたコマンド プロンプトで、このコマンドを実行します。
dotnet add package Microsoft.Data.SqlClient
このコマンドによって、
Microsoft.Data.SqlClient
パッケージがプロジェクトに追加されます。
Azure SQL Database のデータベースに対してクエリを実行するコードを挿入する
Visual Studio Code などのテキスト エディターで、Program.cs を開きます。
その内容を次のコードで置き換え、サーバー、データベース、ユーザー名、パスワードに実際の値を追加します。
Note
ADO.NET の接続文字列を使用するには、コードでサーバー、データベース、ユーザー名、パスワードを設定している 4 行を、次の行に置き換えます。 文字列で、ユーザー名とパスワードを設定します。
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();
}
}
}
<your_server.database.windows.net>
、<your_username>
、<your_password>
、<your_database>
を実際の SQL Server の詳細に置き換えることを忘れないでください。 また、/* specific error number */
を、処理する実際の SQL エラー番号に置き換えます。
コードの実行
プロンプトで、次のコマンドを実行します。
dotnet restore dotnet run
行が返されることを確認します。出力には他の値が含まれる場合があります。
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.
Enter キーを押してアプリケーション ウィンドウを閉じます。