为什么数据源在Datagridview中显示为null,而它已经被分配了数据

本文关键字:分配 数据 Datagridview 数据源 显示 null 为什么 | 更新日期: 2023-09-27 17:50:14

我用下面的代码从返回的数据表中填充datagridview

DataTable dtCourse = Course.GetAllCourses();
for (int i = 0; i < dt.Rows.Count; i++)
{
    dgvAvailableCourses.Rows.Add();
    dgvAvailableCourses[0, i].Value = dtCourse.Rows[i][0];
    //set image
    dgvAvailableCourses[1, i].Value = SMSV100.Properties.Resources.media_playback_stop_6;
    dgvAvailableCourses[2, i].Value = dtCourse.Rows[i][1];
    dgvAvailableCourses[3, i].Value = dtCourse.Rows[i][2];
    dgvAvailableCourses[4, i].Value = dtCourse.Rows[i][3];
    dgvAvailableCourses[5, i].Value = dtCourse.Rows[i][4];
    dgvAvailableCourses[6, i].Value = dtCourse.Rows[i][5];
    dgvAvailableCourses[7, i].Value = dtCourse.Rows[i][6];
    Console.WriteLine(dgvAvailableCourses.DataSource);
}

dgvAvailableCoursesDataGridviewdtCoursesGetAllCourses()

返回的datatable

正如您所看到的,我已经将datagridview的列映射到datatable的列并添加了行。有趣的是,当我试图使用console.writeline()来读取datasource时,我使用了一个断点,datasource显示为空。

为什么这个数据源显示为null,而它已经通过循环分配了数据?

我如何克服这个,我需要访问这个datagridview的底层表,以便做一些计算,但我不能这样做,因为它显示为空?

PS- Datagridview显示数据没有任何问题,但datasource显示null由于

为什么数据源在Datagridview中显示为null,而它已经被分配了数据

我猜你没有绑定DataGridView到你的源,你只是手动添加行。如果你做dgvAvailableCourses.DataSource = dtCourse,我认为你将有绑定完成"正确"(我假设你有一个很好的理由使用循环,而不是仅仅设置DataSource属性)。