C# 无法以编程方式将行添加到datagrid

C# 无法以编程方式将行添加到datagrid,c#,C#,如何解决此错误: 当控件为数据绑定时,无法以编程方式将行添加到DataGridView的Rows集合 从以下代码: string str = "Er.fName,Er.lName"; DataSet dataSet = new DataSet(); DataSet info = this.GetData.getInfo("SELECT 0 AS ErNo, Er.EmpID, (Er.fName&''&sr.lName) AS [Employee Na

如何解决此错误:

当控件为数据绑定时,无法以编程方式将行添加到DataGridView的Rows集合

从以下代码:

  string str = "Er.fName,Er.lName";
      DataSet dataSet = new DataSet();
      DataSet info = this.GetData.getInfo("SELECT 0 AS ErNo, Er.EmpID, (Er.fName&''&sr.lName) AS [Employee Name], Ed.DeptNo AS [Dept No] FROM (EmployeeReg AS Er INNER JOIN EmployeeDept AS Ed ON Er.EmpId = Er.EmpId)  WHERE Ed.DeptId=" + (object) DeptID + " AND  Ed.Status=0  AND Er.EmpStatus=1 ORDER BY " + str, "EmployeeDept");
if (info.Tables[0].Rows.Count > 0) {
    for (int index = 0; index < info.Tables[0].Rows.Count; ++index)
    //error from the code blw 
    this.dgvPrint.Rows.Add((object) 0, (object)(index + 1), (object) info.Tables[0].Rows[index]["Emp Name"].ToString(), (object) info.Tables[0].Rows[index]["Emp No"].ToString(), (object) info.Tables[0].Rows[index]["EmpId"].ToString());
}
if (this.dgvPrint.Rows.Count > 0) 
    this.btnPrint.Enabled = true;
else 
    this.btnPrint.Enabled = false;
string str=“Er.fName,Er.lName”;
数据集=新数据集();
DataSet info=this.GetData.getInfo(“选择0作为ErNo,Er.EmpID,(Er.fName&''&sr.lName)作为[Employee Name],选择Ed.DeptNo作为[Dept No],从(EmployeeReg作为Er.EmpID=Er.EmpID上的Er内部加入EmployeeDept作为Ed),其中Ed.DeptId=“+(object)DeptId+”和Ed.Status=0,而Er.EmpStatus=1订单由“+str,”EmployeeDept“);
if(info.Tables[0].Rows.Count>0){
对于(int index=0;index0)
this.btnPrint.Enabled=true;
其他的
this.btnPrint.Enabled=false;
或:


请将代码格式化为可读格式。这是一个非常明显的错误。绑定datagrid后,无法向其中添加项。Datagridview的数据源是什么???正确的做法是将数据添加到datacollection(数据库、内存、列表,然后刷新网格…操作源,而不是视图,然后更新视图以避免此错误。如果您特别希望以datarows为目标,则可以使用该行的clone属性。
var table = info.Tables[0];
table.Rows.Add(new object[] {
      0, 
      index + 1,
      table.Rows[index]["Emp Name"], 
      table.Rows[index]["Emp No"],
      table.Rows[index]["EmpId"]
});
var table = info.Tables[0];
var new = table.NewRow();
new["colllName"] = 1;
new["colllName 2"] = 2;
//ect...
table.Rows.Add(new);