我有一个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;
}
}
}