1
resposta

Não estou conseguindo carregar a lista de artistas = opção 3

Tive alguns problemas de um colega sobre a versão framework 7.0 e eo que eu fiz foi mudar o csproj para 8.0, porém, não da erro, mas ao tentar listar os artistas gera um erro no DAL, o que provavelmente estou com problema na conexão com o banco de dados.

Baixei a versão do projeto ScreenSound no github da aula 5, mas não sei se falta algo antes deste curso.

Pode me ajudar?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Oi, Rodrigo! Como vai?

Vendo o erro que apareceu (SqlException: Cannot open database "ScreenSoundV0" requested by the login), o problema aqui é conexão/acesso ao banco: ou o banco não existe com esse nome, ou o login não tem permissão, ou a connection string está apontando para o servidor errado.

Siga esses passos para resolver:

  1. Confirme a Connection String (appsettings.json)
  • Verifique se o nome do banco (Initial Catalog / Database) bate com o que existe no SQL Server.

  • Se você estiver usando SQL Server local (LocalDB), confirme o servidor.

    Veja este exemplo:

    
      {
        "ConnectionStrings": {
          "ScreenSoundConnection": "Server=(localdb)\\MSSQLLocalDB;Database=ScreenSoundV0;Trusted_Connection=True;TrustServerCertificate=True"
        }
      }
      

    O que esse código faz (sem acento): define a string de conexão apontando para o servidor e o nome do banco que a API vai usar.

  1. Garanta que o DbContext usa a chave certa no Program.cs, confira se está lendo o mesmo nome ("ScreenSoundConnection"):

    
     var builder = WebApplication.CreateBuilder(args);
    
     builder.Services.AddDbContext<ScreenSoundContext>(options =>
         options.UseSqlServer(builder.Configuration.GetConnectionString("ScreenSoundConnection"))
     );
    
     var app = builder.Build();
     app.Run();
     

    O que esse código faz (sem acento): registra o DbContext no DI e configura o EF Core para usar SQL Server com a connection string do appsettings.

  2. Crie/atualize o banco com Migrations (se o banco não existir ainda) no terminal, dentro da pasta do projeto que contém o .csproj da API:

    
     dotnet tool install --global dotnet-ef
     dotnet ef migrations add Inicial
     dotnet ef database update
     

    O que esse código faz (sem acento): cria uma migração e executa o update para criar as tabelas e o banco (se estiver configurado para criar/atualizar).

  3. Se estiver usando SQL Server Authentication (usuário/senha), confirme se o usuário existe e tem permissão no banco ScreenSoundV0.

    Exemplo de connection string com usuário e senha:

    
     {
       "ConnectionStrings": {
         "ScreenSoundConnection": "Server=localhost;Database=ScreenSoundV0;User Id=sa;Password=SuaSenha;TrustServerCertificate=True"
       }
     }
     

    O que esse código faz (sem acento): conecta no SQL Server usando login e senha em vez de Trusted_Connection.

Dica rápida para diagnostico

  • Abra o SQL Server/SSMS e confirme se existe um banco chamado ScreenSoundV0.
  • Se no seu ambiente o banco estiver com outro nome (ex: ScreenSound), ajuste no appsettings.json.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.