Я учусь создавать webapi, и мне нужна помощь. У меня проблемы со сборкой почтового контроллера! Я не могу заставить его работать непосредственно в методе, который я создал для добавления значений в базу данных. Я не могу найти справки по искомому контенту, документации и т. Д. Есть предложения?
Модель класса:
public class TbStudents
{
public int StuId { get; set; }
public string StuName { get; set; }
public string StuDegree { get; set; }
}
Метод класса:
Почта
public class MethodStudents
{
//GET Method
public async Task<List<TbStudents>> GetReadStudents()
{
List<TbStudents> list = new List<TbStudents>();
using (NpgsqlConnection myConn = new NpgsqlConnection(Conns.ConnStudents))
{
string sql = "SELECT * FROM students ORDER BY stu_name";
NpgsqlCommand myQuery = new NpgsqlCommand(sql, myConn);
myConn.Open();
NpgsqlDataReader myReader = await myQuery.ExecuteReaderAsync();
while (myReader.Read())
{
TbStudents data = new TbStudents
{
StuId = int.Parse(myReader["stu_id"].ToString()),
StuName = myReader["stu_name"].ToString(),
StuDegree = myReader["stu_degree"].ToString(),
};
list.Add(data);
}
myConn.Dispose();
}
return list;
}
//POST Method
public async Task addStudent(TbStudents student) {
using(NpgsqlConnection myConn = new NpgsqlConnection(Conns.ConnStudents)) {
string sql = "INSERT INTO students (stu_name, stu_degree)" +
"VALUES (@name, @degree)";
NpgsqlCommand myQuery = new NpgsqlCommand(sql, myConn);
myQuery.Parameters.AddWithValue("@name", students.StuName);
myQuery.Parameters.AddWithValue("@degree", students.StuDegree);
myConn.Open();
await myQuery.ExecuteNonQueryAsync();
myConn.Dispose();
}
}
}
Контроллеры классов:
{
[Route("api/[controller]")]
[ApiController]
public class StudentsController : ControllerBase
{
MethodStudents methodStudents = new methodStudents();
// GET: api/students
[HttpGet]
public async Task<ActionResult<List<TbStudents>>> GetStudents()
{
var list = methodStudents.GetReadStudents();
return await list;
}
//Post: api/students
[HttpPost]
public async Task<ActionResult<TbStudents>> PostStudents()
{
var postStu = methodStudents.AddStudents();
return await postStu;
}
}
}
Контроллер [HttpPost] застрял у меня из-за некоторых ошибок ...
В строке: var postStu = methodStudents. AddStudents ();
Ошибка CS7036 Не указан аргумент, соответствующий обязательному формальному параметру "student" в "MethodStudents.AddStudent (TbStudents)"
В строке: return await postStu;
Ошибка CS0029. Невозможно неявно преобразовать тип void в Microsoft.AspNetCore.Mvc.ActionResult ‹TestApiStudents.Data.Models.TbStudents›