我有以下代码从返回的数据表填充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);
}
dgvAvailableCourses
是DataGridview
dtCourses
是datatable
GetAllCourses()
正如您所看到的,我已将datagridview
的列映射到datatable
的列并添加了行。有趣的是,当我尝试使用datasource
我使用了一个断点来阅读console.writeline()
时,datasource
显示为null。
为什么这个数据源在已经通过循环分配了数据时显示为null,为什么会这样?
我如何克服这个问题,我需要访问此datagridview
的基础表以进行一些计算,但我不能这样做,因为它显示为null?
PS- Datagridview
显示数据没有任何问题,但它显示null
datasource
感谢
答案 0 :(得分:3)
我猜你没有将DataGridView绑定到你的源代码,你只是手动添加行。如果您执行dgvAvailableCourses.DataSource = dtCourse
,我认为您将完成绑定“正确”(我假设您有充分的理由使用循环而不是仅仅设置DataSource属性)。