在dataGridView数据行中正确使用File.Exists

时间:2014-06-11 22:27:51

标签: c# datagridview

我有一个Windows窗体,通过单击按钮,可以使用MS Access DB中的表内容填充dataGridView。每行是关于不同电影文件的信息,例如标题,年份,质量等。现在列号7是文件位置字段。它存储特定影片的文件路径。我正在尝试使用File.Exists来评估文件是否实际存在于其位置,如果不是,则突出显示红色的行。现在它似乎没有突出显示正确的行。我已经尝试了一些不同的解决方案,通过查找其他地方的示例,然后通过反复试验找到我所处的位置。但是我怀疑问题出在我的for / foreach循环中,我正在努力解决它。希望有人可以帮助我尝试解决我出错的地方

private void buttonShowAll_Click(object sender, EventArgs e)
    {
        dataGridView1.DataSource = null;
        dataGridView1.Rows.Clear();
        dataGridView1.Refresh();

    OleDbDataAdapter dAdapter = new OleDbDataAdapter("select * from movies", connParam);
    OleDbCommandBuilder cBuilder = new OleDbCommandBuilder(dAdapter);

    DataTable dataTable = new DataTable();
    DataSet ds = new DataSet();

    dAdapter.Fill(dataTable);

    for (int i = 0; i < dataTable.Rows.Count; i++)
    {
        dataGridView1.Rows.Add(
            dataTable.Rows[i][0], // ID
            dataTable.Rows[i][1], // Title
            dataTable.Rows[i][2], // Year
            dataTable.Rows[i][3], // Genre 1
            dataTable.Rows[i][4], // Genre 2
            dataTable.Rows[i][5], // Genre 3
            dataTable.Rows[i][6], // Quality
            dataTable.Rows[i][7]  // Location
            );
        foreach (DataRow row in dataTable.Rows)
        {
            int j = 0; j++;
            string MovieLocation = row["movie_location"].ToString();

            if (!File.Exists(MovieLocation))
            {

                this.dataGridView1.EnableHeadersVisualStyles = false;
                this.dataGridView1.Rows[j].DefaultCellStyle.BackColor = Color.Red;

                return;
            }
        }
    }

0 个答案:

没有答案