找回密码
 立即注册

QQ登录

只需一步,快速开始

victorysoft

高级会员

40

主题

100

帖子

1040

积分

高级会员

积分
1040

活字格认证

victorysoft
高级会员   /  发表于:2013-3-7 20:11  /   查看:4837  /  回复:4
Remot.rar (87.58 KB, 下载次数: 64)

4 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-3-8 11:01:00
沙发
主要原因是因为数据源的第一列不允许为空,然后在调用AddUnboundRows时已经将数据同步到table中,所以报错,解决方案有以下两种,请参考代码:
  1.     //增加行
  2.     private void button2_Click(object sender, EventArgs e)
  3.     {
  4.         int rn = fpSpread1.Sheets[0].ActiveRowIndex;
  5.         string pid = fpSpread1.Sheets[0].Cells[rn, 1].Value.ToString();
  6.         string id = System.Guid.NewGuid().ToString();
  7.         rn++;

  8.         #region 修改方案一
  9.         // 直接给数据源插入一行,然后插入的数据会自动同步到Spread中
  10.         DataRow row = table.NewRow();
  11.         row[0] = id;
  12.         row[1] = pid;
  13.         table.Rows.Add(row);
  14.         #endregion

  15.         #region 修改方案二
  16.         // 先设置table.Columns[0].AllowDBNull = true;,等数据添加完成支持再设置为false
  17.         //table.Columns[0].AllowDBNull = true;
  18.         //fpSpread1.Sheets[0].AddUnboundRows(rn, 1);
  19.         //fpSpread1.Sheets[0].Cells[rn, 0].Value = id;
  20.         //fpSpread1.Sheets[0].Cells[rn, 1].Value = pid;
  21.         //fpSpread1.Sheets[0].AddRowToDataSource(rn, true);
  22.         //table.Columns[0].AllowDBNull = false;
  23.         #endregion
  24.     }
复制代码
回复 使用道具 举报
victorysoft
高级会员   /  发表于:2013-3-8 11:15:00
板凳
1、做删除操作,数据源中获取不到删除的行了是怎回事?
2、不是分区域绑定怎没有这样的限制呢。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-3-8 18:36:00
地板
设置 AllowDBNull  之后的不同行为,我这边需要和产品团队确认以下是什么原因。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-3-25 09:37:00
5#
你好,

采用区域绑定之后设置 AllowDBNull  确实有这样的限制。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部