2016-10-15 21 views
1

DataGridViewで行を掛けるために1つを削除する際に問題があります。削除ボタンをクリックすると、何も起こらず、エラーが発生しても表示されません。ここでCでデータグリッドビューのチェックボックスを選択して、一度に複数行を削除する方法

私のコードは、私はあなたが以下のようにCheckBoxが確認されているかどうかをチェックしませんでした見ることができますどのような

SqlConnection cn = new SqlConnection("Data Source=.\\SQLEXPRESS; Initial Catalog=DatabaseName;Integrated Security=True"); 
    SqlCommand cmd = new SqlCommand(); 
    SqlDataReader dr; 


private void btnDeleteCust_Click(object sender, EventArgs e) 
{ 
    foreach (DataGridViewRow item in gridCustomer.Rows) 
    { 
     if (bool.Parse(item.Cells[6].Value.ToString())) 
     { 
      cn.Open(); 
      cmd.CommandText = "delete from Customer where customerID = '" + item.Cells[0].Value.ToString() + "'"; 
      cmd.ExecuteNonQuery(); 

      cn.Close(); 
     } 
    } 
} 
+0

使用のデバッグをしても何も起こらない理由を参照してください。また、グローバル接続、コマンド、リーダーを使用しないでください。 – mybirthname

+0

try catchを入れて、アプリにエラーがあるかどうか確認してください!!私は問題があなたのitem.cells [6]であると思いますが、インデックスの代わりにnsameを入れようとします。 –

+0

CheckBoxをチェックすると、CheckBox.Checked == trueのようにチェックされますか? CheckBoxインデックスを取得し、それを試みます。 –

答えて

0

です:

if(Convert.ToBoolean(row.Cells["checkBoxColumn"].Value) == true) 

はそのCheckBoxのインデックスまたは位置を取得します。チェックされ、最後に削除されるIDです。より多くの場合

、このリンクを参照 - Delete Rows With CheckBox in DataGridView

+0

こんにちはそれは動作しますが、行が削除された後にリフレッシュしないので、datagridviewに問題があります。 – jessmh1

+0

'dataGridView1.Update()' - トリックを行います。 –

+0

cn.Open(); cmd.CommandText = "customerからの削除customerID = '" + item.Cells [0] .Value.ToString()+ "'"; cmd.ExecuteNonQuery(); gridCustomer.Update(); cleartxt(); MessageBox.Show( "Successfully Deleted"); cn.Close(); – jessmh1

関連する問題