0

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

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

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

@{
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>
4

1 回答 1

4

我认为您通常对 SQL 中的 delete 语句有问题,而不是在 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

于 2013-04-03T14:49:53.917 回答