none
DataGridView行状态问题 RRS feed

  • 问题

  • 以前用DataSet 来绑定DataGridView  的DataSource 时,修改后,可以调用DataAdapter.Update() ,它会自动根据RowStatus 来操作数据库。

    现在我用的是WCF,服务端返回的是List<T>,DataGridView 的DataSource 绑的是这个 list.

    现在遇到个问题:

    我打这个单据,原来这个DataGridView 上有两行数据,我新增3行,再删除1行,再修改1行,这样之后,我保存的时候,无法判断出每行的状态是新增  还是删除  还是修改 还是未变,也就无法提交到数据库。

    请大家指点一下,谢谢!

     

     

     


    相信自己,坚持下去。
    2011年5月29日 15:26

答案

全部回复

  • DataGridView 是有很多事件的,可以通过响应它们来编辑数据。

     

    例如添加新行。 可以响应 RowsAdded,把刚才新家的行添加到 List<T> 中,也可以插入到数据库中。

     

    其他操作亦同样。


    学习学习....
    2011年5月30日 3:48
  • 您好:)

    你这种做法类似像“三层结构”的基本雏形一样。我的意思是——请不要直接使用DataGridView进行数据的增删改查,而是只是使用这个工具作为数据预览的查看结果。当你每次选择某一行的时候,应该在面板中的对应数量的TextBox或者其它控件中显示各个字段的值。然后在这些控件中进行修改,最后更新。因此请把DataGridView的AllowEditing,AllowDeleting和AllowAdding等属性都设置成False。

    你同时应该具备一个“新增”按钮,用于直接想数据库中添加新记录。同时具备一个“删除”按钮,当选中某个行的时候,直接取出选择行的主键然后使用Sql命令删除即可。


    如果你有其它意见或私下交流,请发送邮件到:maledong@qq.com;或者请QQ我
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年5月30日 6:53
    版主
  • 您好:)

    你这种做法类似像“三层结构”的基本雏形一样。我的意思是——请不要直接使用DataGridView进行数据的增删改查,而是只是使用这个工具作为数据预览的查看结果。当你每次选择某一行的时候,应该在面板中的对应数量的TextBox或者其它控件中显示各个字段的值。然后在这些控件中进行修改,最后更新。因此请把DataGridView的AllowEditing,AllowDeleting和AllowAdding等属性都设置成False。

    你同时应该具备一个“新增”按钮,用于直接想数据库中添加新记录。同时具备一个“删除”按钮,当选中某个行的时候,直接取出选择行的主键然后使用Sql命令删除即可。


    如果你有其它意见或私下交流,请发送邮件到:maledong@qq.com;或者请QQ我
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处


    我明白你的意思,但是你说的这种情况只适合单表。而我这地方是主从表关系,就像到商场买东西开发票,每个发票只有一个编号和发票日期,但可以有多条明细,即一张发票可以开多样商品。

    对于这样的从表我觉得只能用GRID来做


    相信自己,坚持下去。
    2011年5月30日 7:33
  • 您好,毅无涯:

    欢迎您来到MSDN 论坛。

    传统的采用数据源方式不如使用数据绑定方便好用,建议您使用数据绑定到您的DataGridView。 参见下面的文章:


    如何:绑定服务返回的数据:
    http://msdn.microsoft.com/zh-cn/library/bb628648.aspx

    如何:将数据绑定到 Windows 窗体 DataGridView 控件:
    http://msdn.microsoft.com/zh-cn/library/fbk67b6z.aspx

    也可向DataGridView的BindingList中添加Binding对象:

    Binding 类:
    http://msdn.microsoft.com/zh-cn/library/system.windows.forms.binding.aspx

     


    Neddy Ren [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 毅无涯 2011年6月1日 2:26
    2011年5月31日 6:13