Inicio rápido: Uso de .NET (C#) para consultar una base de datos

Se aplica a: Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics

En este tutorial de inicio rápido, usará código de C# y .NET para conectarse a una base de datos. Luego, ejecutará una instrucción Transact-SQL para consultar los datos. Este inicio rápido se aplica a Windows, Linux y macOS y aprovecha la plataforma unificada de .NET.

Requisitos previos

Para completar este inicio rápido necesita instalar:

Creación de un nuevo proyecto de .NET

  1. Abra un símbolo del sistema y cree una carpeta denominada sqltest. Vaya a esta carpeta y ejecute este comando.

    dotnet new console
    

    Con este comando se crean nuevos archivos de proyecto de aplicaciones, incluido un archivo de código de C# inicial (Program.cs), un archivo de configuración XML (sqltest.csproj) y los archivos binarios necesarios.

  2. En la línea de comandos utilizada anteriormente, ejecute este comando.

    dotnet add package Microsoft.Data.SqlClient
    

    Este comando agrega el paquete Microsoft.Data.SqlClient al proyecto.

Inserción de código para consultar la base de datos en Azure SQL Database

  1. En un editor de texto como Visual Studio Code, abra Program.cs.

  2. Reemplace el contenido con el código siguiente y agregue los valores adecuados para el servidor, la base de datos, el nombre de usuario y la contraseña.

Nota:

Para usar una cadena de conexión ADO.NET, reemplace las 4 líneas del código donde se establece el servidor, la base de datos, el nombre de usuario y la contraseña por la línea que aparece a continuación. En la cadena, establezca el nombre de usuario y la contraseña.

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

Recuerde reemplazar <your_server.database.windows.net>, <your_username>, <your_password> y <your_database> por los detalles reales de SQL Server. Además, reemplace /* specific error number */ por el número de error de SQL real que quiere gestionar.

Ejecución del código

  1. En el símbolo del sistema, ejecute estos comandos.

    dotnet restore
    dotnet run
    
  2. Compruebe que se devuelven las filas, la salida podría incluir otros valores.

    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. Elija ENTRAR para cerrar la ventana de la aplicación.