SilverLight使用WCF RIA SERVICE实现对数据库的操作 (添加,删除,更新)

SilverLight搭建WCF聊天室详细过程 系列文章为大家演示了如何使用SilverLight搭建WCF即时通讯系统过程,多人视频正在开发中,我会持续更新这个系列,以后几篇我会对群里提出最多的问题进行解答并给出设计思路,WCF和IIS配置已经包含在此系列,希望各位朋友在提问前先找找前面的帖子,QQ群:.NET集中营45656086,位置已经不多,群里高手很多,而且比较有开源精神,我是营长,有问题大家可以在博客园留言或者进营!

  上一节为大家介绍了SilverLight连接数据库的基本方法和读取数据,这节我继续把对数据的添加,删除,以及更新给大家做个演示,我们还是依托GridView控件继续演示,在上一节我们已经看到了数据的显示,GridView的强大功能允许我们直接在控件上编辑,而不必每次刷新。

< Grid x:Name= "LayoutRoot"  Background= "White">
        < sdk:DataGrid AutoGenerateColumns= "True"  Height= "297"  HorizontalAlignment= "Left"  Margin= "10,10,0,0"  Name= "daDisplay"  VerticalAlignment= "Top"  Width= "578"  RowEditEnded= "daDisplay_RowEditEnded">
        < /sdk:DataGrid>
        < Button Content= "删除"  Height= "23"  HorizontalAlignment= "Left"  Click= "btDel_Click"  Margin= "86,323,0,0"  Name= "btDel"  VerticalAlignment= "Top"  Width= "75"  />
        < Button Content= "添加"  Height= "23"  HorizontalAlignment= "Left"  Click= "btAdd_Click"   Margin= "178,323,0,0"  Name= "btAdd"  VerticalAlignment= "Top"  Width= "75"  />
    < /Grid>

  前台代码主要添加了DataGrid的RowEditEnded事件,这个事件在编辑行或者单元格时发生,那么我们就可以在编辑结束后保存数据:

  1.修改更新

private  void daDisplay_RowEditEnded( object sender, DataGridRowEditEndedEventArgs e)
        {
            daDisplay.CommitEdit(DataGridEditingUnit.Row,  true);
            domain.SubmitChanges();
        }

  domain是我上节定义的操作数据库类,早晨一直在测试这个事件,一开始使用RowEditing事件发现会产生死循环,每次执行完CommitEdit()都会重新激活这个事件,产生的原因是RowEditing在编辑结束后发生,而CommitEdit()是把所做更改提交到数据源,然后结束编辑,这就引发了RowEditing事件的再次发生,从而产生死循环,这里大家引以为鉴。

  domain.SubmitChanges()提交更新到数据库,操作类会为我们执行写入步骤。

  2:删除

  大家看到上面代码中我已经添加了删除按钮并定义了单击事件,下面给出删除代码:

private  void btDel_Click( object sender, RoutedEventArgs e)
        {
            domain.Accounts_Users.Remove(daDisplay.SelectedItem  as Accounts_Users);
            domain.SubmitChanges();
        }

  首先从数据源中删除选中要删除的行,大家不必再考虑需不需要单独删除GridView中的行,或者重新绑定,在SilverLight中已经不存在Asp.net这种诟病,当数据源数据更改时,操作类会自动更新绑定对象。

  3.添加

  在已经定义好的添加按钮单击事件中,添加如下语句:

private  void btAdd_Click( object sender, RoutedEventArgs e)
        {
            Accounts_Users user =  new Accounts_Users();
            domain.Accounts_Users.Add(user);
        }

  上面提到只要数据源改变,操作类就会刷新绑定到它上面的数据源,所以我们的思路就是只要把要新添加的行以数据库表抽象对象的形式添加到数据源,此时DataGrid上就会出现新行,再由用户自行添加数据,然后调用修改事件保存。

  到此为止SilverLight连接数据库操作的增,删,查,改已经演示完,有机会我会把WCF RIA SERVICE的自定义类传输和自定义查询给大家进行介绍,今天一直在查这方面资料,发现资料少的可怜,这也是大家学习SilverLight的最大障碍,以后我会尽自己所能为初学者写一些入门介绍,谢谢大家的支持。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值