フォームにラジオボタン、グリッドビュー、ボタンがあります。ここに私のdatagridview selection_changed
コードサンプルがあります:
private void DataGridView1_SelectionChanged(object sender, EventArgs e)
{
if (rdb_Delete.Checked)
{
lbl_deleteMsg.Text = DataGridView1.SelectedRows.Count.ToString()
+ " rows selected.";
}
}
ユーザーが削除ボタンを押したときに、選択した行をデータベースから削除し、datagridview を更新したいと考えています。データベースに Id 列がありますが、datagridview でユーザーに表示しません。
SQLクエリで、選択した行をデータベースから削除するにはどうすればよいですか? これは私の削除ボタンをクリックしたコードですが、動作していないようです(選択変更イベントのため):
private void btn_Delete_Click(object sender, EventArgs e)
{
if (rdb_Delete.Checked)
{
int count = DataGridView1.SelectedRows.Count;
int length = DataGridView1.RowCount;
if (!count.Equals(0))
{
if (confirm())
{
for (int i = 0; i < length; i++)
{
if (DataGridView1.Rows[i].Selected)
{
//DataGridView1.SelectedRows[i].Selected = false;
DataGridView1.Rows.RemoveAt(i);
i--;
}
}
}
}
}
}
編集:私はまた、そのような場合に誰かを助けるかもしれない小さな答えを見つけます。DataGridView の任意の列をvisible = falseにすることができるため、次のようなコードでアクセスできます。
int rowID = int.Parse(DataGridView1[0, selectedIndex].Value.ToString());