0

我有一个可以访问的电影表,与 OleDBConnection 和 Datagridview1 组件连接。有这样的代码:

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) { }


            }

        }

它必须删除选定的多行,但它不会:(

我的错误在哪里,你能帮我吗?

4

1 回答 1

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);
    }
于 2012-04-05T19:35:08.397 回答