を与える行の私に与えて削除]コマンドがエラー
DataGridViewのインデックスが範囲外でした。負でなく、コレクションのサイズより小さい でなければなりません。パラメータ名:インデックス例外
と私は最後の列名が残っています。フッタには私に合計値が表示されますが、問題は私に最後のバランス値を示していないことです。
バランスが-2000,3000,4000の3つの値を入力しているので、2000 + 3000の合計値が最後の行の合計を示していないことを示しているとします。
私は、そのコードにも
削除コードを貼り付けています:
private void btndelete_Click(object sender, EventArgs e)
{
if (dataGridView1.SelectedCells.Count > 0)
{
**if (dataGridView1.Rows.Count > 1 && dataGridView1.SelectedRows[0].Index != dataGridView1.Rows.Count - 1)**//Exception coming this line
{
cmd.CommandText = "Delete from Ledger where AccountNumber=" + dataGridView1.SelectedRows[0].Cells[0].Value.ToString() + "";
con.Open();
cmd.Connection = con;
cmd.ExecuteNonQuery();
con.Close();
dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[0].Index);
MessageBox.Show("Row Deleted");
Load_data();
}
else
{
MessageBox.Show("Please select a row");
}
}
}
合計コード:
private void dataGridView1_DataSourceChanged(object sender, EventArgs e)
{
double Total = 0;
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
Total += Convert.ToDouble(dataGridView1.Rows[i].Cells["Balance"].Value);
}
dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["Balance"].Value = Total;
lblsum.Text =Convert.ToString(Total);
}
オブジェクト参照がオブジェクトのインスタンスに設定されていません。 cmd.CommandText = "元帳からAccountNumber =" + dataGridView1.SelectedRows [0] .Cells [0] .Value.ToString()+ "";を削除します。 – Atul
これは、SelectedRow [0]のセル[0]がヌルであることを意味します。しかし、あなたのイメージからは明らかではありません。最初のセルはAccountNumberのようです。セルのインデックス0に非表示の列がないことは確かですか? – Steve
はいsteve隠された列がありません – Atul