Я пытаюсь создать приложение .NET 6 Core MVC, которое показывает список пользовательских записей из базы данных. Но я получаю сообщение об ошибке «Свойство строки подключения не было инициализировано» при попытке открыть соединение. Прямо сейчас я пытаюсь предоставить данные в строке запроса, но получаю эту ошибку.
**DATA ACCESS LAYER**
using ABL_USER_DebitCard_Info.Models;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
namespace ABL_USER_DebitCard_Info.Context
{
public class DebitCard_DAL
{
string connectionString = "Data Source = (localdb)\\MSSQLLocalDB; Initial Catalog = ABL_DebitCard_User_Info_DB";
public IEnumerable<Users> GetUserByCNIC(string? CNIC)
{
var debitcardList = new List<Users>();
using (SqlConnection conn = new SqlConnection())
{
SqlCommand cmd = new SqlCommand("ABL_GetUserByCNIC", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@CNIC", CNIC);
conn.Open(); ---> GETTING ERROR HERE
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
var user = new Users();
user.Id = Convert.ToInt32(reader["ID"].ToString);
user.CNIC = reader["CNIC"].ToString();
user.UserName = reader["UserName"].ToString();
user.CardNumber = reader["CardNumber"].ToString();
user.CardStatus = reader["CardStatus"].ToString();
debitcardList.Add(user);
}
conn.Close();
}
return debitcardList;
}
}
}
**Controller**
using ABL_USER_DebitCard_Info.Context;
using ABL_USER_DebitCard_Info.Models;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace ABL_USER_DebitCard_Info.Controllers
{
public class UsersController : Controller
{
DebitCard_DAL dbcontext = new DebitCard_DAL();
[HttpGet]
public ActionResult Details(string CNIC)
{
if (CNIC == null)
{
return NotFound();
}
else
{
List<Users> debitcardList = dbcontext.GetUserByCNIC(CNIC).ToList();
return View(debitcardList);
if (debitcardList.Count == 0)
{
return NotFound();
}
else
{
return View(debitcardList);
}
}
}
}
}
Вы создаете SqlConnection без указания строки подключения.
Передайте строку подключения конструктору SqlConnection.
using (SqlConnection conn = new SqlConnection(connectionString ))
Хорошо, что у вас есть переменная с именем «строка соединения», но не забывайте использовать ее, когда вам нужно :)
При создании нового экземпляра вашего sql-соединения вы забыли его поставить.
using (SqlConnection conn = new SqlConnection(connectionStringGoesHere))
строка подключения должен быть указан в файле startup.cs используйте это, или вы также можете использовать dapper для запуска запроса в ядре .net
using (SqlConnection conn = new SqlConnection(connectionString)