私はhtml開発にかなり慣れていないので、この問題に取り組む方法がわかりません。編集可能なセルを含むテーブルを作成する必要があります。次に、編集した行に基づいて、データベース テーブルの特定の行を更新する必要があります。問題に対して正しいアプローチを使用していないとほぼ確信しているいくつかの実用的なソリューションを作成したので、どうすればこれをうまく行うことができるかを知る必要があります。繰り返される形式に注意してください。編集された行のみを更新するために、1 つのフォームと 1 つの送信ボタンのみを使用したいと考えています。
@using Oracle.DataAccess.Client;
@using Oracle.DataAccess.Types;
@{
string some_conn = "SomeConnectionString";
OracleConnection conn = new OracleConnection(some_conn);
var comm = new OracleCommand("select * from some_table",conn);
conn.Open();
if(IsPost){
var some_id = Request.Form["some_id"];
var some_value = Request["some_value"];
var update_comm = new OracleCommand("update some_table"+
" set some_value ='"+some_value+"'" +
" where some_id ='" + some_id + "'", conn ) ;
update_comm.ExecuteNonQuery();
}
var dr = comm.ExecuteReader();
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<table>
@while(dr.Read()){
<tr>
@for(int i= 0; i < 7 ; i++){
if(i != 5){
<td> @(Convert.ToString(dr.GetValue(i)))</td>
}
}
<form method="post" action="">
<td> <input type="text" name="some_id" contenteditable="false" value="@(Convert.ToString(dr.GetValue(5)))"></td>
<td><textarea name="some_value" cols="10" rows="10">@(Convert.ToString(dr.GetValue(7)))</textarea></td>
<td> <input type="submit" value="update"></td>
</form>
</tr>
}
</table>
</body>
</html>
@{
conn.Close();
conn.Dispose();
}