快速入門:使用 .NET (C#) 查詢資料庫
適用於: Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics
在本快速入門中,您將使用 .NET 和 C# 程式碼來連線到資料庫。 然後,您將使用 Transact-SQL 陳述式來查詢資料。 本快速入門適用於 Windows、Linux 和 macOS,並運用整合的 .NET 平台。
提示
本免費 Learn 課程模組說明如何開發和設定可查詢 Azure SQL 資料庫中資料庫的 ASP.NET 應用程式
必要條件
若要完成本快速入門,您需要:
具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
您可在其中執行查詢的資料庫。
您可以使用其中一個快速入門,以建立資料庫並加以設定:
動作 SQL Database SQL 受控執行個體 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 資料庫中的資料庫
在文字編輯器 (如 Visual Studio Code) 中,開啟 Program.cs。
使用以下程式碼取代內容,並為您的伺服器、資料庫、使用者名稱和密碼新增適當的值。
注意
若要使用 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();
}
}
}
記得以實際 SQL Server 詳細資料取代 <your_server.database.windows.net>
、<your_username>
、<your_password>
、和 <your_database>
。 此外,請使用您想要處理的實際 SQL 錯誤號碼取代 /* specific error number */
。
執行程式碼
在命令提示字元中,執行以下命令。
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 關閉應用程式視窗。