データベースから生成された質問の動的リストを作成しようとしています。
テキストボックスとチェックボックスを使用して質問をリストします。チェックボックスをオンにしたときに、テキストボックスのテキストを別のテーブルにデータベースに書き込みたいと思います。
質問をデータベースに書き込むことはできますが、テキスト ボックスから回答がありません。
以下のコードは私のリストを生成します。
com = new OleDbCommand("SELECT [Task] FROM Debrief_Tasks WHERE [Current] = TRUE AND [Group] = 4", Program.DB_CONNECTION);
datareader = com.ExecuteReader();
int e = 1;
while (datareader.Read())
{
try
{
string Task = datareader.GetString(0);
Label taskLable = new Label();
taskLable.Text = Task;
taskLable.AutoSize = true;
taskLable.Anchor = AnchorStyles.Left;
TextBox nameTextBox = new TextBox();
nameTextBox.Name = ToString();
nameTextBox.AutoSize = true;
nameTextBox.Anchor = AnchorStyles.None;
nameTextBox.Padding = new Padding(1);
nameTextBoxes.Add(nameTextBox);
CheckBox completeCheckBox = new CheckBox();
completeCheckBox.Name = Task.ToString();
completeCheckBox.AutoSize = true;
completeCheckBox.Anchor = AnchorStyles.None;
completeCheckBox.CheckAlign = ContentAlignment.MiddleCenter;
completeCheckBox.Padding = new Padding(1);
completeCheckBox.CheckedChanged += new EventHandler(completeCheckBox_CheckedChanged);
completeCheckBoxes.Add(completeCheckBox);
tableLayoutPanel5.RowCount = e + 2;
tableLayoutPanel5.Controls.Add(taskLable, 0, e + 1);
tableLayoutPanel5.Controls.Add(nameTextBox, 1, e + 1);
tableLayoutPanel5.Controls.Add(completeCheckBox, 2, e + 1);
i++;
}
catch
{
}
}
}
}
}
}
void completeCheckBox_CheckedChanged(object sender, EventArgs e)
{
CheckBox checkBox = (CheckBox)sender;
if (checkBox.Checked)
{
OleDbCommand com = new OleDbCommand("INSERT INTO Debrief ([Debrief_Date], [Task], [DoneName]) VALUES (?, ?, ?)", Program.DB_CONNECTION);
com.Parameters.Add(new OleDbParameter("", DateTime.Today.Date));
com.Parameters.Add(new OleDbParameter("", Convert.ToString(checkBox.Name)));
com.Parameters.Add(new OleDbParameter("", ***Convert.ToString(checkBox.Name***)));
OleDbDataReader datareader = com.ExecuteReader();
}
else
{
}
}
最後のSQL入力が他のものと同じであることは知っていますが、これが実行できる唯一の方法です。
関連するテキストボックスをチェックボックスにリンクする方法についてのアイデア。