【发布时间】:2020-08-04 11:44:22
【问题描述】:
我有一个包含学生的数据库。为了让学生通过他们的 Id 使用 HTTP Get,这里是我的操作方法的一个片段:
[HttpGet("{id}", Name = "Get")]
public Student Get(int id)
{
DataSet data = objDB.GetDataSet("SELECT * FROM Students WHERE Id = " + id.ToString());
}
现在我想创建另一个 HTTP Get,它可以通过学生的姓氏和年级来获取学生。在我的数据库中,我有一个姓氏和年级的字段,就像 id 一样。但是我无法同时检查它们。我稍后将有 2 个文本框,用户可以在其中输入姓氏和成绩,并且将显示与输入的姓氏和成绩匹配的所有学生。到目前为止,这是我的代码:(我的数据库中的姓氏和等级是 varchar)
[HttpGet("{lastname}/{grade}", Name = "GetLastNameGrade")]
public Student Get (string lastname, string grade)
{
DataSet ds = objDB.GetDataSet("SELECT * FROM Students WHERE LastName = " + lastname.ToString() + "AND" + "SELECT * FROM Students WHERE Grade = " + grade.ToString());
}
这是我的学生课
public int StudentID { get; set; }
public string LastName { get; set; }
public string Grade { get; set; }
我在使用姓氏和年级的 SQL 语句时遇到问题。当我尝试在 Postman 中运行该方法时,我没有显示任何内容。我对自己做错了什么感到困惑。
【问题讨论】:
-
lastname.ToString()和另一个用单引号括起来。= '" + lastname.ToString() + "' AND ...更好的是,您应该使用参数化查询。最好使用 ORM 工具、EF、Dapper、wahtever。 -
我不确定什么是 ORM 工具,EF,Dapper,我刚开始学习如何制作自己的 Web API 并联系我的数据库。这是你的意思吗:“SELECT * FROM Students WHERE LastName =” + 'lastname.ToString()' + “AND” + “SELECT * FROM Students WHERE Grade =” + 'grade.ToString()');? @OguzOzgul
标签: c# mysql postman asp.net-core-webapi http-get