2012-04-05 13 views
0

アクセス可能なテーブルがあり、OleDBConnectionとDatagridview1コンポーネントが接続されています。 は、このようなコードを持っている:DataGridviewとアクセステーブルの複数の行を削除します

if (this.dataGridView1.SelectedRows.Count > 0) 
     { 
      string queryString = "SELECT movieID, Title, MovieYear, Country,Located, Description, Poster, Actors, FilmDirector, Type FROM Movie,movieType WHERE movietype.typeID = Movie.typeID"; 
      foreach (DataGridViewRow dgvrCurrent in dataGridView1.SelectedRows) 
      { 
       int currentRow = int.Parse(dataGridView1.CurrentCell.RowIndex.ToString()); 
       try 
       { 
        string movieIDString = dataGridView1[0, currentRow].Value.ToString(); 
        movieIDInt = int.Parse(movieIDString);     

        string queryDeleteString = "DELETE FROM Movie where movieID = " + movieIDInt + ";"; 
        OleDbCommand sqlDelete = new OleDbCommand(); 
        sqlDelete.CommandText = queryDeleteString; 
        sqlDelete.Connection = database; 
        sqlDelete.ExecuteNonQuery(); 
        loadDataGrid(queryString); 
       } 
       catch (Exception ex) { } 


      } 

     } 

これは、複数の行を選択して削除する必要がありますが、それは私のミスで、あなたは、私を助けてくださいすることができます

を:(ません

+0

この場合、デバッガを使用して、あなたのコードをデバッグする。それが正しいメソッドを呼び出しているかどうかを確認してください。私の推測loadDataGridはforeach文の後にある必要があります。 – JonH

答えて

1

私が思うに、loadDataGridを? (のqueryString)は、forループの外でなければなりません。それはしかし単なる推測ではないのは間違いないだろう。

if (this.dataGridView1.SelectedRows.Count > 0) 
    { 
     string queryString = "SELECT movieID, Title, MovieYear, Country,Located, Description, Poster, Actors, FilmDirector, Type FROM Movie,movieType WHERE movietype.typeID = Movie.typeID"; 
     foreach (DataGridViewRow dgvrCurrent in dataGridView1.SelectedRows) 
     { 
      int currentRow = int.Parse(dataGridView1.CurrentCell.RowIndex.ToString()); 
      try 
      { 
       string movieIDString = dataGridView1[0, currentRow].Value.ToString(); 
       movieIDInt = int.Parse(movieIDString);     

       string queryDeleteString = "DELETE FROM Movie where movieID = " + movieIDInt + ";"; 
       OleDbCommand sqlDelete = new OleDbCommand(); 
       sqlDelete.CommandText = queryDeleteString; 
       sqlDelete.Connection = database; 
       sqlDelete.ExecuteNonQuery();      
      } 
      catch (Exception ex) { } 
     } 

     loadDataGrid(queryString); 
    } 
関連する問題