从表和DB中删除条目。 WebMatrix中/剃须刀

时间:2013-04-03 13:52:42

标签: sql razor webmatrix

我已经使用我的数据库中的信息填充了一个表,但我需要另一个列,我可以从表中删除一个条目并从数据库中删除。

我已经开始创建一个删除语句,但我不知道我需要删除一个条目?

到目前为止,这是我的代码......

@{
var db = Database.Open("StayInFlorida");

var sPropertyId = Request.QueryString["PropertyID"];
var roominfo = "SELECT * FROM RoomInfo WHERE PropertyID=@0";
var qroominfo = db.Query(roominfo, sPropertyId);
var droominfo = "DELETE ??? FROM RoomInfo"

if (IsPost){
    var deletesingleroom = db.Query(droominfo, sPropertyId);
}
}

<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="utf-8" />
    <title></title>
    <link href="~/css/bootstrap.css" rel="stylesheet">
</head>
<body>

    <div id="tab2" class="tab-pane">
<h4>Room Information</h4>
<table class="table table-bordered">
<thead>
<tr>
  <th>Room Title</th>
  <th>Room Type</th>
  <th>Room Description</th>
  <th>Delete Room</th>           
</tr>
</thead>
<tbody>
@foreach (var row in qroominfo)
{
<tr>
<td>@row.RoomTitle</td>
<td>@row.RoomType</td>
<td>@row.RoomDescription</td>
<td>
<form method="post">
<button type="submit" class="btn btn-success">Delete</button
</form>
</td>
</tr>
}
</tbody>
</table>
</div>

</body>
</html>

1 个答案:

答案 0 :(得分:4)

我认为你在SQL中的删除语句有一个问题,在Razor上下文中并不特别。

删除语句的语法是

DELETE FROM RoomInfo WHERE <some condition>

如果您只是发送此查询:

DELETE FROM RoomInfo

这将删除所有行。
因此,要从POST结果中仅删除一行,它与select:

相同
DELETE FROM RoomInfo WHERE PropertyID=@0

编辑:

现在您有一个唯一标识符可用于标识要删除的房间,您可以更新代码:

首先,将房间的ID与删除按钮相关联:

<form method="post">
    <input type="text" name="id-room" value="@row.RoomID">
    <button type="submit" class="btn btn-success">Delete</button
</form>

当您提交删除表单时,请检索要删除的会议室ID:

var sRoomId = Request.QueryString["id-room"];
var droominfo = "DELETE FROM RoomInfo WHERE RoomId = " + sRoomId

请注意,此代码非常糟糕,并且会有很多安全漏洞 例如,您不应该在剃刀文件中访问数据库。如果你是老式的PHP,你的工作就像 试着告诉自己ASP.NET MVC