Я не могу отобразить данные, хранящиеся в sql

@page
@model AfterFix.Pages.Clients.IndexModel
@{
}
@using System.Collections.Generic; 

<br>
<h2>List of Clients</h2>
<a class='btn btn-primary btn-sm' href='/Clients/Create'>New Client</a>
<table class = "table"> 
    <thead>
        <tr>
            <th>ID</th>
            <th>Name</th>
            <th>Email</th>
            <th>Phone</th>
            <th>Address</th>
            <th>Created At</th>
            <th>Action</th>
        </tr>
    </thead>
    <tbody>
    @foreach(var item in Model.listclients)
        {
            <tr>
                <td>@item.id</td>
                <td>@item.name</td>
                <td>@item.email</td>
                <td>@item.phone</td>
                <td>@item.address</td>
                <td>@item.created_at</td>
                <td>
                    <a class = "btn btn-primary btn-sm" href = "/Clients/[email protected]">Edit</a>
                    <a class = "btn btn-primary btn-sm" href = "/Clients/[email protected]">Delete</a>
                </td>
            </tr>
        }
    </tbody>
</table>
using Microsoft.AspNetCore.Mvc.RazorPages;
using System.Data.SqlClient;

namespace AfterFix.Pages.Clients
{
    public class IndexModel : PageModel
    {
        public List<ClientInfo> listclients = new List<ClientInfo>();
        public void OnGet()
        {
            try
            {
                 string connectionString = "Data Source=.\\sqlexpress;Initial Catalog=mystore;Integrated Security=True;Encrypt=True;Trust Server Certificate=True";
                   using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    connection.Open();
                    string sql = "SELECT * From clients";
                    using (SqlCommand command = new SqlCommand(sql, connection))
                    {
                        using (SqlDataReader reader = command.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                ClientInfo clientInfo = new ClientInfo();
                                clientInfo.id = "" + reader.GetInt32(0);
                                clientInfo.name = reader.GetString(1);
                                clientInfo.email = reader.GetString(2);
                                clientInfo.phone = reader.GetString(3);
                                clientInfo.address = reader.GetString(4);
                                clientInfo.created_at = reader.GetDateTime(5).ToString();
                                listclients.Add(clientInfo);
                            }
                        }
                    }

                }
            }

            catch (Exception ex)
            {
                Console.WriteLine("Exception : " + ex.ToString());
            }

        }
    }
    public class ClientInfo
    {
        public string id;
        public string name;
        public string email;
        public string phone;
        public string address;
        public string created_at;
    }
}

Уважаемые, Проект действительно работает, но я не могу просмотреть данные, записанные в базе данных. Я заметил, что даже если я изменю оператор подключения к другой базе данных, это не повлияет на проект, а это означает, что он вообще не читает базу данных. Я использую страницы asp.net wep razor .Net8. У меня есть только эти две файлы. Есть ли какие-либо другие файлы, которые необходимо добавить, чтобы я мог просмотреть данные?

Вы отлаживали? Что вы получаете reader.Read()? Вы проверяли, не возникло ли какой-либо ошибки?

Md Farid Uddin Kiron 24.04.2024 07:45

Сначала вам следует исправить типы данных вашего класса ClientInfo. Id — int32, а Created_at — date, но вы определили все параметры ClientInfo как строку.

Kamal24h 24.04.2024 07:48

Во-вторых, вы можете отладить свой проект, используя контрольные точки в начале процедуры OnGet(), и проследить ход выполнения по F10, чтобы узнать, правильно ли заполнен ваш параметр списка (listclients).

Kamal24h 24.04.2024 07:51
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
3
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проект действительно работает, но я не могу просмотреть записанные данные в базе данных. Я заметил, что даже если я изменю соединение заявление в другую базу данных, проект не затрагивается, что означает, что он вообще не читает базу данных. Я использую asp.net wep страницы бритвы .Net8 .У меня есть только эти два файла. Есть ли еще какие-нибудь файлы, которые необходимо добавить, чтобы я мог просмотреть данные?

В результате теста я обнаружил проблему в вашей строке подключения . Я не уверен, указываете ли вы на правильный сервер базы данных.

Согласно моему тесту, у меня есть следующий сервер базы данных, и я просто заменил строку подключения на основе конфигурации моего sql-сервера и без каких-либо дальнейших изменений я могу извлекать данные из базы данных, используя ваш код.

Вот шаги, которые я сделал:

Конфигурация базы данных:

Строка подключения:

Я заменил строку подключения следующим образом:

string connectionString = "Server=(localdb)\\ProjectModels;Database=RazorPageTableJoinDb;Trusted_Connection=True;MultipleActiveResultSets=true";

Примечание. Убедитесь, что вы используете правильный формат и правильные учетные данные экземпляра сервера sql.

Выход:

Примечание. Пожалуйста, дважды проверьте строку подключения и формат, если вы указываете на правильный экземпляр сервера. Вы можете обратиться к этому официальному документу.

Другие вопросы по теме