@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. У меня есть только эти две файлы. Есть ли какие-либо другие файлы, которые необходимо добавить, чтобы я мог просмотреть данные?
Сначала вам следует исправить типы данных вашего класса ClientInfo. Id — int32, а Created_at — date, но вы определили все параметры ClientInfo как строку.
Во-вторых, вы можете отладить свой проект, используя контрольные точки в начале процедуры OnGet(), и проследить ход выполнения по F10, чтобы узнать, правильно ли заполнен ваш параметр списка (listclients).
Проект действительно работает, но я не могу просмотреть записанные данные в базе данных. Я заметил, что даже если я изменю соединение заявление в другую базу данных, проект не затрагивается, что означает, что он вообще не читает базу данных. Я использую asp.net wep страницы бритвы .Net8 .У меня есть только эти два файла. Есть ли еще какие-нибудь файлы, которые необходимо добавить, чтобы я мог просмотреть данные?
В результате теста я обнаружил проблему в вашей строке подключения . Я не уверен, указываете ли вы на правильный сервер базы данных.
Согласно моему тесту, у меня есть следующий сервер базы данных, и я просто заменил строку подключения на основе конфигурации моего sql-сервера и без каких-либо дальнейших изменений я могу извлекать данные из базы данных, используя ваш код.
Вот шаги, которые я сделал:
Конфигурация базы данных:
Строка подключения:
Я заменил строку подключения следующим образом:
string connectionString = "Server=(localdb)\\ProjectModels;Database=RazorPageTableJoinDb;Trusted_Connection=True;MultipleActiveResultSets=true";
Примечание. Убедитесь, что вы используете правильный формат и правильные учетные данные экземпляра сервера sql.
Выход:
Примечание. Пожалуйста, дважды проверьте строку подключения и формат, если вы указываете на правильный экземпляр сервера. Вы можете обратиться к этому официальному документу.
Вы отлаживали? Что вы получаете
reader.Read()
? Вы проверяли, не возникло ли какой-либо ошибки?