首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >System.Configuration.ConnectionStringSettingsCollection.this[string].get在ASP.Net核心上返回null

System.Configuration.ConnectionStringSettingsCollection.this[string].get在ASP.Net核心上返回null
EN

Stack Overflow用户
提问于 2020-05-17 06:02:13
回答 1查看 387关注 0票数 0

当我试图从数据库中检索数据时,我会得到一个Object reference not set to an instance of an object错误。我知道EF有一个dbcontext,我可以使用,但是我想尝试这种方法,因为我的同事使用这种方法。我可以得到ConnectionString罚款,我看到它在我的断点,但在这一行之后,我得到了错误:

System.Configuration.ConnectionStringSettingsCollection.thisstring.get

返回null

我的代码如下:

appsettings.json

代码语言:javascript
运行
复制
"AllowedHosts": "*",
  "ConnectionStrings": {
    "DefaultConnection": "Server=DESKTOP-MIHT9TM\\SQLEXPRESS;Database=react_db;User=sa;Password=OtlPHP07"
  }

Startup.cs

代码语言:javascript
运行
复制
public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();

            services
                .AddMvc(options =>
                {
                    options.EnableEndpointRouting = false;
                })
                .AddNewtonsoftJson()
                .SetCompatibilityVersion(CompatibilityVersion.Version_3_0)
                .AddJsonOptions(options =>
                {
                    options.JsonSerializerOptions.IgnoreNullValues = true;
                    options.JsonSerializerOptions.WriteIndented = true;
                });

            services.AddSingleton<IConfiguration>(Configuration);
        }

DepartmentController.cs

代码语言:javascript
运行
复制
[Route("api/[controller]")]
    [ApiController]
    public class DepartmentController : ControllerBase
    {
        private readonly IConfiguration configuration;

        public DepartmentController(IConfiguration configuration)
        {
            this.configuration = configuration;
        }

        [HttpGet]
        public IActionResult Get()
        {
            DataTable table = new DataTable();
            string query = @"SELECT * FROM dbo.Departments";

            var conString = configuration.GetConnectionString("DefaultConnection");
            using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings[conString].ConnectionString))
            {
                using (var cmd = new SqlCommand(query, con))
                {
                    using (var da = new SqlDataAdapter(cmd))
                    {
                        cmd.CommandType = CommandType.Text;
                        da.Fill(table);
                    }
                }
            }
            
            return Ok(table);
        }
    }

我在这一行中遇到了错误:using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings[conString].ConnectionString))

编辑

这是conString的值

我甚至试过这个密码..。

代码语言:javascript
运行
复制
var conString = configuration.GetConnectionString("DefaultConnection");
            using (var con = new SqlConnection(ConfigurationManager.AppSettings[conString].ToString()))
EN

回答 1

Stack Overflow用户

发布于 2020-05-17 06:20:46

在SqlConnection上,尝试使用传递给构造函数的配置对象,而不是它的新实例。或者更好的是您已经拥有的conString变量(它确实使用传递给构造函数的配置实例)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61847644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档