Andy Leonardo Ochoa López
SOLUCIÓN PARA ESTE ERROR:
Microsoft.Data.SqlClient.SqlException (0x80131904): A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - La cadena de certificación fue emitida por una entidad en la que no se confía.)
Si les sale este error, deben agregar TrustServerCertificate=True en el fnal de su DataSource así:
"Data Source=LAPTOP-731U8C1L\\MSSQLSERVER2014;Initial Catalog=TareasDb;user id=sa;password=contraseña;TrustServerCertificate=True"
Juan Francisco Juarez
Funciona excelente para windows. Gracias !
Santiago Vasquez
Eres el mejoor!
Thomas Jeffery
Por si alguien trata de conectar a su DB usando la seguridad de Windows, la cadena de conexion le tiene que quedar asi:
"Data Source=(local); Initial Catalog= TareasDb;Trusted_Connection=True; Integrated Security=True"
Donde dice (local) si no les toma tienen que ir y tomar el nombre de su servidor (eso lo consiguen al abrir el SQL Server y la ventana que aparece al conectar les dice el nombre del servidor ese les toma seguro
Cristian Almeida
Gran aporte. Muchas gracias. Fue de gran ayuda.
Juan Daniel Zuluaga Serna
Toma tu Like. Llevaba unos dias intentando lograrlo y no encontraba la respuesta en ningun lado. Fue de gran ayuda. Crack
Elvis Salvatierra
Para Postgres yo utilice lo siguiente:
en vez de AddSqlServer utilizamos AddNpgsql
builder.Services.AddNpgsql<TareasContext>(builder.Configuration.GetConnectionString("TareasDb"));
tambien obtengo la cadena de conexión del archivo appsettings.json agregando lo siguiente:
"ConnectionStrings": { "TareasDb" : "User ID=postgres;Password=postgrespw;Host=localhost;Port=55000;Database=TareasDb;" }
Nota: como yo levante un Docker de Postgres estoy utilizando el puerto 55000, pero por defecto el puerto de Postgres es 5423.
Miguel Teheran
ProfesorExcelente aporte!
Brandom Rafael Ledesma Muñoz
Estoy buscando la manera de hacerlo pero con MySQL, aun no he podido, si alguien sabe podría decirme como :3
Wilson Alexánder Laguna Cárdenas
Esto se hace cuando no se tiene la DB. Si ya se tiene la DB, se puede utilizar un tool de EF para generar el contexto, este es el comando: dotnet ef dbcontext scaffold "Data Source=DBServer;User ID=User;Password=Pass;Initial Catalog=DBb;Persist Security Info=False;Pooling=False;MultipleActiveResultSets=False;Encrypt=False;TrustServerCertificate=False" Microsoft.EntityFrameworkCore.SqlServer -o FolderForModels -c "ContextFileName" --force
Juan Betancur
voy a probarlo, muchas gracias.
Fernando José Ureta Espinoza
Buen aporte, gracias.
Boris Vargas Paucara
Mi solución utilizando PostgreSQL 10.5 juntamente con Docker:
Resultado:
Andres Antonio Santisteban Lino
Gracias men, me ayudo los pantallazos estaba estancado en SQL server me pase a PostgreSQL
kadhir alberto peña riofrio
Me podrias compartir el repositorio para ver la conexion a detalle tambien la estructura del proyecto.
Zoila Yaneth Villatoro Garcia
Por si alguien tiene duda de como se hace con docker, les dejo indicaciones ☺️☺️📌📌 Archivo > docker-compose.yml
version: '3.7' volumes: sqldata: services: sqlserver: container_name: 'sqlserver' image: 'mcr.microsoft.com/mssql/server:2019-latest' environment: - ACCEPT_EULA=Y - MSSQL_PID=Developer - SA_PASSWORD=mySecret1234 ports: - "1433:1433" volumes: - sqldata:/var/opt/mssql command: /bin/sh -c "(/opt/mssql/bin/sqlservr &) && sleep 10s && /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P mySecret1234 -d master -Q 'CREATE DATABASE TareasDB' && sleep infinity"
Si quieren pueden quitar la sección de command debido a que el endpoint que utiliza el profesor ya crea la base de datos y para conectarse en el archivo de >** Program.cs ** solamente necesitan agregar lo siguiente
builder.Services.AddSqlServer<TareasContext>(builder.Configuration.GetConnectionString("Server=localhost;Database=TareasDB;User Id=SA;Password=mySecret1234;MultipleActiveResultSets=true;"));
De ahi solo queda probar el endpoint y espero que todo les funcione bien 😊😊😊
Franklin Gil
Te rifaste! Buenisima!
Platzi Team
Idolaaaaa 🔥
Randall Chacón Sarmiento
La conexión dentro del program.cs es una mala práctica. Sin embargo, en la siguiente clase se utiliza el archivo appsettings para pasar la conexion de base de datos.
Wilson Antonio Ruiz Fermin
Exactamente. Lo mejor seria tener tu clase Startup donde configure todos tus servicios entre ellos el propio EF y luego pasar el nombre de tu cadena de conexión que lo recomendable seria que venga de un archivo de configuración como el appsetting.
Claudio José Baldassa
Para MySQL yo usé
builder.Services.AddDbContext<TareasContext>(options => options.UseMySQL("server=localhost;database=TareasDb;user=tuUsuario;password=tuPasswrod"));
y me funcionó perfecto.
Wilson Bienvenido Otaño Mateo
Muchas gracias se parece mucho a como se hace en windows forms
Edinson Jesús Paternina Rivera
builder.Services.AddSqlServer<TareasContext>("Data Source=.;Initial Catalog=TareasDB;Integrated Security=True");
En esta linea accedemos a una bd local pero con las credenciales de windows
Miguel Teheran
ProfesorCorrecto, realiza la autenticación integrada a la maquina local donde se esta ejecutando el proyecto. buen aporte!
Hernando Alonso
en mi caso utilicé esta misma con una variación debido a que tengo más de una instancia de SqlServer en mi sistema y la que utilizo en mi proyecto Platzi no es la instancia por defecto: builder.Services.AddSqlServer<TareasContext>("initial catalog=TareasDB;data source=NOMBRESERVIDOR\NOMBREINSTANCIA;Connect Timeout=360;integrated security=yes");
Franklin Gil
Si quieres usar MySql:
Instala el paquete MySql.EntityFrameworkCore Ojo que no sea MySql.Data.EntityFrameworkCore
dotnet add package MySql.EntityFrameworkCore --version 6.0.7
Agregas la coneccion
builder.Services.AddDbContext<TasksContext>( opt => opt.UseMySQL("Server=localhost;Database=ef_tasks;User=root;Password=12345678;") );
Jorge Luis Sanchez Barreneche
Al momento de acceder al endpoint me da el siguiente error: "Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[1] An unhandled exception has occurred while executing the request. System.MissingMethodException: Method not found: 'System.String Microsoft.EntityFrameworkCore.Diagnostics.RelationalStrings.get_NoConnectionOrConnectionString()'."
Luan de Souza
Vi muchos comentarios sobre el conexion string de SqlServer para autenticar con windows y como ninguno me sirvio abri el "Visual Studio" IDE y me fije en el SQLObjectExplorer y obtuve directametne de ahi la cadena y esto fue lo que me dio
"Data Source=SERVERNAME;Initial Catalog=TasksDB; Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");"
El server name seria el que indica el profesor y yo agregue el Initial Catalog=TasksDB; porque no viene, el profesor esta usando TareasDb.
Gabi Richards
Graciaaaas!!!! Al fin me resultó pipipi.
Julio Ariel Rocha Soria
Me salvaste, gracias
Rodrigo Ramos
Nuevamente pregunto en que momento explicaron como descargar/instalar SQL Server, se que este no es un curso de SQL, pero creo que lo mínimo es que expliquen como se instalan todos las herramientas que se van a ocupar en el curso y no solo dar por hecho que el alumno ya lo sabe
Andres Villanueva Tabares
Opino lo mismo, pero la cuestión es que al inicio pide unos prerrequisitos y entre ellos está el tema de SQL Server, es como si alguien dijera "En que momento instalo Visual Studio Code o Postman".
Cristian Isaac Vargas
https://www.connectionstrings.com
En esta pagina pueden encontrar diferentes connection strings, para diferentes lenguajes y tecnologias. Espero les sea de utilidad, con esta pude encontrar la conexion para utilizar en el caso de postgresSQL.
José Luis Martínez Hernández
Para postgres, en el archivo appsettings.json, hice la configuración de la conexión hacia la base de datos.
"ConnectionStrings": { "PostgresSQLConnection": "Server= 127.0.0.1; Port=5432; Database=TareasDB; User Id=postgres; Password=postgres" }
Luego en Program.cs se realiza la configuración usando la conexión creada :
builder.Services.AddNpgsql<TareasContext>(builder.Configuration.GetConnectionString("PostgresSQLConnection"));
Yoan Esteban Lopez Garcia
Genial tu configuracion me sirvio, Gracias!...
Jose Zertuche
Me funcionó! Muchas gracias.
Junier Ayala Perez
En caso de que les salga este error:
Data Source=DESKTOP-818TULI;Initial Catalog=TareasDB;user id=sa;password=123456789;MultipleActiveResultSets=true;TrustServerCertificate=True;encrypt=falseCarlos Matias Avanzini
Buenas, si en sql server se identifican con Windows authentication tienen que poner en la cadena el atributo Integrated Security=True luego del password builder.Services.AddSqlServer<TareasContext>("Data Source=.;Initial Catalog=TareasDb;user id=xxxxxx;password=xxxxxxxxxx;Integrated Security=True");
Jose Roque
pueden conectarse a una base LocalDb de SqlServer
var builder = WebApplication.CreateBuilder(args); //Add Database context //builder.Services.AddDbContext<dbContext>(p => p.UseInMemoryDatabase("TareasDB")); builder.Services.AddDbContext<dbContext>(p => p.UseSqlServer(builder.Configuration.GetConnectionString("ConnectionLocalDB")) ); //...
y en appsetting.json tendría:
{ "ConnectionStrings": { "ConnectionLocalDB": "Data Source=(LocalDb)\\MSSQLLocalDB;Initial Catalog=Tareasdb;Integrated Security=True;TrustServerCertificate=True;" }, "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*" }
Juan Pablo Urra Jara
Si tienen algún error al intentar conectarse a la base de datos de SqlServer intenten agregar lo siguiente a la linea de conexión:
Integrated Security=True; TrustServerCertificate=True;
Andres Villanueva Tabares
En mi caso, octubre de 2025, decidí usar Docker, ya que lo otro no logre una instalación exitosa
para el archivo docker-compose.yml
version: '3.8' services: sqlserver: container_name: sqlserver image: mcr.microsoft.com/mssql/server:2022-latest environment: ACCEPT_EULA: "Y" MSSQL_PID: "Developer" SA_PASSWORD: "MySecret123!" ports: - "1433:1433" restart: unless-stopped adminer: container_name: adminer image: adminer:latest ports: - "8080:8080" restart: unless-stopped depends_on: - sqlserver
La parte del adminer es para no estar manejando ese programas de SQL Server Management Studio y tener una versión ligera en el navegador.
Use las siguientes credenciales:
System: MS SQL (beta) Server: sqlserver (mantén este) Username: SA (mantén este) Password: MySecret123! (asegúrate de poner la contraseña) Database: TareasDB (o déjalo vacío)
Y modifique el archivo Program.cs
using Microsoft.EntityFrameworkCore; using projectef; var builder = WebApplication.CreateBuilder(args); builder.Services.AddDbContext<TaskContext>(options => { options.UseSqlServer("Server=localhost,1433;Database=TareasDB;User Id=SA;Password=MySecret123!;TrustServerCertificate=true;MultipleActiveResultSets=true"); }); var app = builder.Build(); app.MapGet("/", () => "Hello World!"); app.MapGet("/dbConnection", async (TaskContext dbContext) => { try { // Obtener el nombre de la base de datos var databaseName = dbContext.Database.GetDbConnection().Database; // Verificar si la base de datos fue creada o ya existía var wasCreated = await dbContext.Database.EnsureCreatedAsync(); var message = wasCreated ? $"Base de datos '{databaseName}' creada exitosamente" : $"Base de datos '{databaseName}' ya existe y está lista"; return Results.Ok(new { success = true, databaseName = databaseName, wasCreated = wasCreated, message = message, timestamp = DateTime.Now }); } catch (Exception ex) { return Results.Problem($"Error: {ex.Message}"); } }); app.Run();
Lo demás fue apoyo con Winsurf.
por último revisen bien el código, ya que modifique algunas palabras para que están en inglés.
Rommel Olachea
A alguien le arroja este error, estoy realizando el proyecto desde wsl v2, con ubuntu 20.04
Miguel Teheran
ProfesorQue motor de base de datos estas usando? revisas que si tengas bnien configurado usario y contraseña.