Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Recupeare la connessione nella configurazione in Asp net core

    ciao!

    mi sto intriducendo ad Asp net core mvc, e vorrei recuperare la connessione creata nel file di configurazione appsettings.json:
    codice:
    {
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft": "Warning",
          "Microsoft.Hosting.Lifetime": "Information"
        }
      },
      "AllowedHosts": "*",
      "ConnectionStrings": {
        "ZaraConn": "Server=IP_ADDRESS;Database=NOME_DB;user id=USER;password=PWD;Trusted_Connection=True;MultipleActiveResultSets=true"
      }
    }
    nel controller, giusto per capire se funziona o meno:
    codice:
    using System;
    using System.Diagnostics;
    using Microsoft.AspNetCore.Mvc;
    using Microsoft.Extensions.Logging;
    using CSharpNetCoreWeb.Models;
    using Microsoft.Extensions.Configuration;
    using System.Data.SqlClient;
    
    namespace CSharpNetCoreWeb.Controllers
    {
        public class HomeController : Controller
        {
            private readonly ILogger<HomeController> _logger;
            public IConfiguration Configuration { get; }
    
            public HomeController(ILogger<HomeController> logger)
            {
                _logger = logger;
                string connectionString = Configuration["ConnectionStrings:ZaraConn"];
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    string sql = "SELECT * FROM Richieste";
                    SqlCommand command = new SqlCommand(sql, connection);
                    using (SqlDataReader dataReader = command.ExecuteReader())
                    {
                        while (dataReader.Read())
                        {
                            Console.WriteLine(dataReader[0]);
                        }
                    }
                    connection.Close();
                }
            }
    
            public IActionResult Index()
            {
                return View();
            }
    
            public IActionResult Privacy()
            {
                return View();
            }
    
            [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
            public IActionResult Error()
            {
                return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
            }
        }
    }
    ma ottengo questo errore:
    codice:
    System.NullReferenceException: 'Object reference not set to an instance of an object.'
    
    CSharpNetCoreWeb.Controllers.HomeController.Configuration.get ha restituito null.
    qualche suggerimento??

  2. #2
    ho provato anche così:
    codice:
    {
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft": "Warning",
          "Microsoft.Hosting.Lifetime": "Information"
        }
      },
      "AllowedHosts": "*",
      "MySettings": {
        "DbConnection": "abc",
        "Email": "abc@domain.com",
        "SMTPPort": "5605"
      }
    }
    e poi:
    codice:
    namespace CSharpNetCoreWeb.Controllers
    {
        public class HomeController : Controller
        {
            private readonly ILogger<HomeController> _logger;
            private IConfiguration configuration { get; }
    
            public HomeController(ILogger<HomeController> logger)
            {
                _logger = logger;
                string dbConn = configuration.GetSection("MySettings").GetSection("DbConnection").Value;
                Debug.WriteLine("STRINGA: " + dbConn);
            }
    .........................
        }
    }
    ma mi va in errore:
    codice:
    System.NullReferenceException: 'Object reference not set to an instance of an object.'
    
    CSharpNetCoreWeb.Controllers.HomeController.configuration.get ha restituito null.
    sinceramente non capisco, ho letto tonnellate di esempi in giro, e anche la documentazione!

  3. #3
    risolto modificando il costruttore del controller:
    codice:
     private IConfiguration configuration { get; }
    
            public HomeController(IConfiguration configuration)
            {
    
             }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.