我正在尝试向公共函数中的现有datagridview添加新行。每当我尝试访问datagridview的任何数据属性时,我都会得到null值。 datasource属性为null,因此我无法向其添加新元素。我已经创建了一个新的datagridviewrow,但是CreateCells方法不会复制列并抛出索引超出范围的错误。有谁知道我在这里尝试做什么可能有什么问题?
以下是整个功能的代码:
public void AddToGrid(Attendance newRecord)
{
try
{
DataGridViewRow newRow = new DataGridViewRow();
newRow.CreateCells(AttendanceGrid);
newRow.Cells[1].Value = newRecord.EmployeeNumber;
newRow.Cells[2].Value = newRecord.ScheduledDate;
newRow.Cells[3].Value = newRecord.SIn;
newRow.Cells[4].Value = newRecord.SOut;
newRow.Cells[5].Value = newRecord.AIn;
newRow.Cells[6].Value = newRecord.AOut;
newRow.Cells[7].Value = newRecord.RecordCode;
newRow.Cells[8].Value = newRecord.ReasonCode;
newRow.Cells[9].Value = newRecord.Comments;
AttendanceGrid.Rows.Add(newRow);
AttendanceGrid.Refresh();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message + ": " + ex.StackTrace, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
任何人都可以看到我正在做的事情的问题吗?
答案 0 :(得分:1)
您应该拥有DatagridView的数据源,例如DataTable。
然后通过绑定源将该DataTable绑定到Datagridview。
您可以向DataTable添加新行,然后这些行将自动反映在Datagrid中。