ASP.NETでOracleデータベースに新しいデータを追加するためには
ASP.NETでOracleデータベースに新しいデータを追加するためには、Oracleのデータアクセスライブラリを使用してINSERT文を実行します。以下に、ASP.NET WebフォームおよびASP.NET MVCのサンプルコードを示します。### 1. **必要なパッケージのインストール**前述の通り、OracleのデータアクセスライブラリをNuGetからインストールします。```bashInstall-Package Oracle.ManagedDataAccess```### 2. **ASP.NET Webフォームの例**以下は、ASP.NET Webフォームを使用してOracleデータベースに新しいデータを追加する基本的な例です。#### 2.1. Webフォームのコード**Default.aspx**```aspx<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title>Oracle Insert Example</title></head><body> <form id="form1" runat="server"> <div> <label for="txtName">名前:</label> <asp:TextBox ID="txtName" runat="server"></asp:TextBox><br /> <label for="txtAge">年齢:</label> <asp:TextBox ID="txtAge" runat="server"></asp:TextBox><br /> <asp:Button ID="btnAdd" runat="server" Text="データを追加" OnClick="btnAdd_Click" /> <asp:Label ID="lblMessage" runat="server" ForeColor="Green"></asp:Label> </div> </form></body></html>```**Default.aspx.cs**```csharpusing System;using Oracle.ManagedDataAccess.Client;public partial class Default : System.Web.UI.Page{ protected void btnAdd_Click(object sender, EventArgs e) { string name = txtName.Text; int age; if (int.TryParse(txtAge.Text, out age)) { string connectionString = "User Id=your_username;Password=your_password;Data Source=your_data_source"; using (OracleConnection connection = new OracleConnection(connectionString)) { connection.Open(); string query = "INSERT INTO your_table (name, age) VALUES (:name, :age)"; using (OracleCommand command = new OracleCommand(query, connection)) { command.Parameters.Add(new OracleParameter("name", name)); command.Parameters.Add(new OracleParameter("age", age)); int rowsAffected = command.ExecuteNonQuery(); lblMessage.Text = $"{rowsAffected} 行が追加されました。"; } } } else { lblMessage.Text = "年齢は数値で入力してください。"; } }}```### 3. **ASP.NET MVCの例**次に、ASP.NET MVCを使用した例です。#### 3.1. コントローラのコード**HomeController.cs**```csharpusing System;using System.Web.Mvc;using Oracle.ManagedDataAccess.Client;public class HomeController : Controller{ [HttpGet] public ActionResult Index() { return View(); } [HttpPost] public ActionResult Index(string name, string age) { int ageValue; if (int.TryParse(age, out ageValue)) { string connectionString = "User Id=your_username;Password=your_password;Data Source=your_data_source"; using (OracleConnection connection = new OracleConnection(connectionString)) { connection.Open(); string query = "INSERT INTO your_table (name, age) VALUES (:name, :age)"; using (OracleCommand command = new OracleCommand(query, connection)) { command.Parameters.Add(new OracleParameter("name", name)); command.Parameters.Add(new OracleParameter("age", ageValue)); int rowsAffected = command.ExecuteNonQuery(); ViewBag.Message = $"{rowsAffected} 行が追加されました。"; } } } else { ViewBag.Message = "年齢は数値で入力してください。"; } return View(); }}```#### 3.2. ビューのコード**Index.cshtml**```html@{ ViewBag.Title = "Oracle Insert Example";}<h2>データを追加</h2>@using (Html.BeginForm()){ <label for="name">名前:</label> <input type="text" name="name" required /><br /> <label for="age">年齢:</label> <input type="text" name="age" required /><br /> <input type="submit" value="データを追加" />}@if (ViewBag.Message != null){ <div>@ViewBag.Message</div>}```### 4. **接続文字列の設定**上記のサンプルコードでは、`your_username`、`your_password`、`your_data_source`、`your_table`をそれぞれ実際の値に置き換えてください。- **User Id**: Oracleのユーザー名- **Password**: Oracleのパスワード- **Data Source**: TNS名またはデータベースの接続情報- **your_table**: データを追加したいテーブル名(このテーブルには、`name`と`age`というカラムが必要です)。### 5. **実行とテスト**ASP.NETアプリケーションを実行し、フォームに名前と年齢を入力して送信することで、Oracleデータベースに新しいデータが追加されることを確認できます。エラーハンドリングやデータ検証を適切に追加して、実際のアプリケーションに対応させることをお勧めします。