Asp.net-wp-delete-database-data

提供:Dev Guides
移動先:案内検索

ASP.NET WP-データベースデータの削除

この章では、既存のデータベースレコードを削除する方法について説明します。 このトピックは前の章と似ていますが、レコードを更新する代わりに削除します。 削除プロセスと更新プロセスはどちらもほぼ同じですが、削除の方が簡単です。 この例には、2つのWebページも含まれます。

  • 最初のページで、ユーザーは削除するレコードを選択します。
  • 2番目のページでは、削除するレコードが表示され、ユーザーはそのレコードを削除することを確認できます。

データベースレコードを削除する方法

既存のデータベースレコードを削除する簡単な例を見てみましょう。 まず、新しいCSHTMLページを作成する必要があります。

レコードの削除

[名前]フィールドに ListCustomersForDelete.cshtml と入力し、[OK]をクリックします。

ListCustomersForDelete.cshtmlファイルの次のコードを置き換えます。

@{
   var db = Database.Open("WebPagesCustomers");
   var selectQueryString = "SELECT * FROM Customers ORDER BY FirstName";
}

<!DOCTYPE html>
<html>

   <head>
      <title>Delete a Customer</title>
      <style>
         table, th, td {
            border: solid 1px #bbbbbb;
            border-collapse: collapse;
            padding: 2px;
         }
      </style>

   </head>
   <body>
      <h1>Delete a Customer</h1>

      <table>
         <thead>
            <tr>
               <th> </th>
               <th>First Name</th>
               <th>Last Name</th>
               <th>Address</th>
            </tr>
         </thead>

         <tbody>
            @foreach(var row in db.Query(selectQueryString)){
               <tr>
                  <td><a href = "@Href("~/DeleteCustomer", row.Id)">Delete</a></td>
                  <td>@row.FirstName</td>
                  <td>@row.LastName</td>
                  <td>@row.Address</td>
               </tr>
            }
         </tbody>
      </table>

   </body>
</html>

ご覧のとおり、上記のページはEditCustomers.cshtmlページに似ていますが、唯一の違いは、各顧客の[編集]リンクを表示することです。 次のコードを使用して、削除リンクを追加します。 これが完了すると、選択したレコードの削除に役立つ[削除]リンクが表示されます。

<td><a href = "@Href("~/DeleteCustomer", row.Id)">Delete</a></td>

データベースから顧客を削除する

次のスクリーンショットに示すように、CHTMLファイルの作成から始める必要があります。

顧客の削除

名前フィールドに DeleteCustomer.cshtml と入力し、[OK]をクリックします。 DeleteCustomer.cshtmlファイルを次のコードに置き換えます。

@{
   var db = Database.Open("WebPagesCustomers");
   var CustomerId = UrlData[0];

   if (CustomerId.IsEmpty()) {
      Response.Redirect("~/ListCustomersForDelete");
   }
   var customer = db.QuerySingle("SELECT * FROM CUSTOMERS WHERE ID = @0", CustomerId);

   if( IsPost && !CustomerId.IsEmpty()) {
      var deleteQueryString = "DELETE FROM Customers WHERE Id=@0";
      db.Execute(deleteQueryString, CustomerId);
      Response.Redirect("~/ListCustomersForDelete");
   }
}

<!DOCTYPE html>
<html>

   <head>
      <title>Delete Customer</title>
   </head>

   <body>
      <h1>Delete Customer - Confirmation</h1>

      <form method = "post" action = "" name = "form">
         <p>Are you sure you want to delete the following Customer?</p>
         <p>FirstName: @customer.FirstName <br/>
         LastName: @customer.LastName <br/>
         Address: @customer.Address</p>
         <p><input type = "submit" value = "Delete"/></p>
      </form>

   </body>
</html>

次に、アプリケーションを実行して、次のURLを指定します- http://localhost:36905/ListCustomersForDelete 。次のWebページが表示されます。

顧客の削除

データベースからすべての顧客と、各顧客の削除リンクを確認できます。 Kerry Hillの[削除]リンクを選択すると、次のページが表示されます。

確認の削除

その顧客のすべての情報が表示されます。 [削除]ボタンをクリックすると、この顧客はデータベースから削除されます。

[削除]ボタンをクリックすると、次のスクリーンショットに示すように、データベースから削除されていることがわかります。

顧客レコードの削除

現在、データベースには2つのレコードしかありません。