我已经使用我的数据库中的信息填充了一个表,但我需要另一个列,我可以从表中删除一个条目并从数据库中删除。
我已经开始创建一个删除语句,但我不知道我需要删除一个条目?
到目前为止,这是我的代码......
@{
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>
答案 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。