为什么数据源显示为Datagridview的null,当它已经被分配了数据?

时间:2014-03-13 11:56:09

标签: c# winforms datagridview ado.net

我有以下代码从返回的数据表填充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);
}

dgvAvailableCoursesDataGridview dtCoursesdatatable

中返回的GetAllCourses()

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

为什么这个数据源在已经通过循环分配了数据时显示为null,为什么会这样?

我如何克服这个问题,我需要访问此datagridview的基础表以进行一些计算,但我不能这样做,因为它显示为null?

PS- Datagridview显示数据没有任何问题,但它显示null datasource 感谢

1 个答案:

答案 0 :(得分:3)

我猜你没有将DataGridView绑定到你的源代码,你只是手动添加行。如果您执行dgvAvailableCourses.DataSource = dtCourse,我认为您将完成绑定“正确”(我假设您有充分的理由使用循环而不是仅仅设置DataSource属性)。