Oracle 10g Express Edition を使用しています。
テーブルに存在する値に基づいて、ラジオボタンとテキストボックスのセットが動的に生成されます。
私が欲しいのは、ユーザーがラジオボタンを選択して削除ボタンをクリックすると、ラジオボタンの直前のテキストフィールドにある値が文字列変数に取り込まれ、この値がデータベースのテーブルで削除されることです。
これは、ラジオボタンとテキストボックスを生成する方法です:
foreach (DataRow dr in dsData.Tables[0].Rows){
TextBox txt_task = new TextBox();
txt_task.Enabled = false;
txt_task.Text = " " + dr[0].ToString();
txt_task.Width = 300;
txt_task.ID = "dynamictask" + counter.ToString();
RadioButton chk_delete = new RadioButton();
chk_delete.Enabled = true;
chk_delete.GroupName = "del_grp";
chk_delete.ID = "dynamicrdio" + counter.ToString();
dynamic_controls_holder.Controls.Add(chk_delete);
dynamic_controls_holder.Controls.Add(new LiteralControl(" "));
dynamic_controls_holder.Controls.Add(txt_task);
dynamic_controls_holder.Controls.Add(new LiteralControl("<br />"));
//The inital value of counter was 0.
counter+=1;
}
そして、これは私が削除操作を実行しようとしている方法です:
for (int counter = 0; counter <= rows_count; counter++){
string dynamic_rdio_finder = "dynamicrdio" + counter.ToString();
string dt = "dynamictask" + counter.ToString();
RadioButton temp_rdio = (RadioButton)dynamic_controls_holder.FindControl(dynamic_rdio_finder);
if (temp_rdio.Checked){
TextBox temp_task = (TextBox)dynamic_controls_holder.FindControl(dt);
temp_task_txt = temp_task.Text;
break;
}
}
connection.Open();
OracleCommand command = new OracleCommand("DELETE FROM tbl_mark6_task WHERE description_task=:description_task", connection);
command.Parameters.AddWithValue("description_task", temp_task_txt);
rows_count = command.ExecuteNonQuery();
command.Parameters.Clear();
if (rows_count == 1){
lbl_notification.Text = "Task was deleted successfully.";
}
else if (rows_count != 1){
lbl_error.Text = "Task was not deleted!";
}
そして、これは機能していません。問題が何であるかを見つけることができないようです。