我正在做一个学校项目而且我被困住了。 我想要做的是..通过按页面上的按钮来调用执行读取sql查询的方法。然后,它创建填充了查询信息的Model对象,并将它们放入列表中。填充列表后,它应返回显示所有对象的视图。 (在我的例子中,视图将显示sql数据库中存在的所有“命令”)
我的按钮代码(我的方法叫做:LaadBestellingen,我的控制器叫做Beheer:
<button type="button" onclick="location.href='@Url.Action("LaadBestellingen", "Beheer")'"> LOAD ORDERS </button>
这是BeheerController方法:
public ActionResult LaadBestellingen()
{
try
{
conn.Open();
String selectQuery = "SELECT voornaam, achternaam, adres, postcode, email, telefoon, totaalprijs , datum FROM bestelling b JOIN klant k ON k.idklant = b.idklant JOIN product p ON p.idproduct = b.idproduct;";
MySqlCommand cmd = new MySqlCommand(selectQuery, conn);
MySqlDataReader dataReader = cmd.ExecuteReader();
List<Bestelling> bestellingenlijst = new List<Bestelling>();
while (dataReader.Read())
{
Bestelling bestelling = new Bestelling();
bestelling.Klantvoornaam = dataReader.GetString("voornaam");
bestelling.Klantachternaam = dataReader.GetString("achternaam");
bestelling.Klantadres = dataReader.GetString("adres");
bestelling.Klantpostcode = dataReader.GetString("postcode");
bestelling.Klantemail = dataReader.GetString("email");
bestelling.Klanttelefoon = dataReader.GetString("telefoon");
bestelling.Totaalprijs = dataReader.GetDouble("totaalprijs");
bestellingenlijst.Add(bestelling);
}
return View(bestellingenlijst);
}
catch (Exception e)
{
Console.Write("Er is een fout opgetreden tijdens laden van de bestellingen", e);
return View("Index");
}
finally
{
conn.Close();
}
}
最后这是我视图的代码,它与LaadBestellingen方法的名称相同:
@using WebWinkelGroep16.Models;
@model List<Bestelling>
跳过一些HTML代码,这里的内容是显示的内容:
<div id="content">
<ul>
@{
foreach (Bestelling element in @Model)
{
<li> Voornaam: @element.Klantvoornaam <br /> </li>
<li> Achternaam: @element.Klantachternaam<br /></li>
<li> Adres: @element.Klantadres<br /></li>
<li> Postcode: @element.Klantpostcode<br /></li>
<li> Email: @element.Klantemail <br /></li>
<li> Telefoon: @element.Klanttelefoon<br /></li>
<li> Totaalprijs: @element.Totaalprijs<br /></li>
}
}
</ul>
</div>
我做错了什么?当我尝试执行SQL查询时,它可以作为一个魅力,并显示所有要求的信息。由于某种原因,它总是将我发送到catch中的返回视图。
答案 0 :(得分:0)
如果您按照以下方式编写查询:
String selectQuery = @"SELECT voornaam
, achternaam
, adres
, postcode
, email
, telefoon
, totaalprijs
, datum
FROM bestelling b
JOIN klant k ON k.idklant = b.idklant
JOIN product p ON p.idproduct = b.idproduct;";
您会看到实际选择datum
列。只需删除它。看看发生了什么。