主要原因是因为数据源的第一列不允许为空,然后在调用AddUnboundRows时已经将数据同步到table中,所以报错,解决方案有以下两种,请参考代码:
- //增加行
- private void button2_Click(object sender, EventArgs e)
- {
- int rn = fpSpread1.Sheets[0].ActiveRowIndex;
- string pid = fpSpread1.Sheets[0].Cells[rn, 1].Value.ToString();
- string id = System.Guid.NewGuid().ToString();
- rn++;
- #region 修改方案一
- // 直接给数据源插入一行,然后插入的数据会自动同步到Spread中
- DataRow row = table.NewRow();
- row[0] = id;
- row[1] = pid;
- table.Rows.Add(row);
- #endregion
- #region 修改方案二
- // 先设置table.Columns[0].AllowDBNull = true;,等数据添加完成支持再设置为false
- //table.Columns[0].AllowDBNull = true;
- //fpSpread1.Sheets[0].AddUnboundRows(rn, 1);
- //fpSpread1.Sheets[0].Cells[rn, 0].Value = id;
- //fpSpread1.Sheets[0].Cells[rn, 1].Value = pid;
- //fpSpread1.Sheets[0].AddRowToDataSource(rn, true);
- //table.Columns[0].AllowDBNull = false;
- #endregion
- }
复制代码 |