簡體   English   中英

如何在 Asp.Net Core Mvc 5.0 中將 sql 數據庫與 ado.net 連接?

[英]How to connect sql Database with ado.net in Asp.Net Core Mvc 5.0?

我找不到我在哪里失蹤。 我的代碼是這樣的;

用戶.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;

namespace Adonet_Sql.Models
{
public class users
{

    private string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
     public List<usersAccessLayer> getdata()
    {
        List<usersAccessLayer> li = new List<usersAccessLayer>();
        try
        {
            SqlConnection conn = new SqlConnection(connectionString);
            SqlCommand cmd = new SqlCommand("test", conn);
            conn.Open();
            cmd.CommandType = CommandType.StoredProcedure;
            SqlDataReader rdr = cmd.ExecuteReader();
            while (rdr.Read())
            {
                usersAccessLayer usr = new usersAccessLayer();
                usr.id = (string)rdr.GetValue(2);
                usr.name = rdr.GetString(0);
                usr.surname = rdr.GetString(1);
                li.Add(usr);
            }
     
        }
        catch (Exception)
        {

            throw;
        }

        return li;
    }
}

}

usersAccessLayer.cs;

      using System;
      using System.Collections.Generic;
      using System.Linq;
      using System.Threading.Tasks;

      namespace Adonet_Sql.Models
      {
          public class usersAccessLayer
          {
    public string name { get; set; }
    public string surname { get; set; }
    public string id { get; set; }
}
      }

appsettings.json

    {
  "ConnectionStrings": {
"DefaultConnection": "Server=DESKTOP-1FOQ86Q; 
 Database=Users;Trusted_Connection=True;MultipleActiveResultSets=true\""
 },
 "Logging": {
  "LogLevel": {
   "Default": "Information",
   "Microsoft": "Warning",
   "Microsoft.Hosting.Lifetime": "Information"
}
   },
 "AllowedHosts": "*"


}

最后我得到了這個錯誤;

處理請求時發生未處理的異常。 NullReferenceException:Object 引用未設置為 object 的實例。 users.cs 中的 Adonet_Sql.Models.users..ctor(),users.cs 中的第 14 行 Adonet_Sql.Models.users..ctor()

private string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
Adonet_Sql.Controllers.HomeController.Index() in HomeController.cs
sers obj = new users();
lambda_method1(Closure , object , object[] )
Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor+SyncActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, object controller, object[] arguments)

布拉布拉。

您可能忘記在配置中添加連接字符串。 ConfigurationManager.ConnectionStrings["DefaultConnection"]返回null 它正在 App.config 中查找連接字符串。 文檔

嘗試閱讀此線程並將IConfigurationappsettings.json一起使用。

ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;

適用於 .net 核心 3.0

在 5.0 中你需要使用;

string connectionString = _configuration.GetConnectionString("DefaultConnection");

或者

private string connectionString = "Server=DESKTOP-1FOQ86Q ;Database=Users;Trusted_Connection=True;MultipleActiveResultSets=true"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM