Office中国论坛/Access中国论坛

标题: 【WPF小品】Silverlight中与数据库交互入门教程 -- 第二课 [打印本页]

作者: todaynew    时间: 2013-7-18 11:23
标题: 【WPF小品】Silverlight中与数据库交互入门教程 -- 第二课
本帖最后由 todaynew 于 2013-7-18 11:34 编辑

第二课 设计查询

  本课描述在如何在域服务类中,根据实际业务的需要设计查询。

示例文件:[attach]52195[/attach]

上一课 下一课

作者: todaynew    时间: 2013-7-18 11:24
本帖最后由 todaynew 于 2013-7-18 11:25 编辑

15、打开Web项目中的域服务类文件MyDomainService.vb;

16、在域服务类中增加一个按班级ID查询学生表的查询方法,代码如下:

   '新增按班级ID的查询方法
    <Query(IsComposable:=False)>
    Public Function Get学生表By班级ID(ByVal id As Integer) As IQueryable(Of 学生表)
        Return Me.ObjectContext.学生表.Where(Function(x) CBool(x.班级ID = id))
    End Function

图示05:



作者: todaynew    时间: 2013-7-18 11:24
本帖最后由 todaynew 于 2013-7-18 11:26 编辑

17、转到MainPage.xaml文件中,从工具箱分别拖一个Lable控件和一个ComboBox控件到页面中,并调整位置大小等;

18、将ComboBox控件命名为cob班级ID;

图示06:




作者: todaynew    时间: 2013-7-18 11:24
本帖最后由 todaynew 于 2013-7-18 11:26 编辑

19、转到MainPage.xaml.vb文件中,编写和修改代码如下:

Imports System.ServiceModel.DomainServices.Client
Imports RIA示例.Web

Partial Public Class MainPage
    Inherits UserControl
    Private myD As New MyDomainContext

    Public Sub New()
        InitializeComponent()
        SetCob()
        SetDataGrid()

    End Sub

    Private Sub SetDataGrid()
        Dim id As Integer = 0
        If cob班级ID.SelectedValue Is Nothing = False Then
            id = CInt(cob班级ID.SelectedValue)
        End If

        Dim loadop As LoadOperation(Of 学生表) = myD.Load(myD.Get学生表By班级IDQuery(id))
        DataGrid1.ItemsSource = loadop.Entities()
    End Sub

    Private Sub SetCob()
        Dim loadop As LoadOperation(Of 班级表) = myD.Load(myD.Get班级表Query())
        cob班级ID.ItemsSource = loadop.Entities()
        cob班级ID.DisplayMemberPath = "班级"
        cob班级ID.SelectedValuePath = "班级ID"
    End Sub

    Private Sub cob班级ID_SelectionChanged(sender As Object, e As System.Windows.Controls.SelectionChangedEventArgs) Handles cob班级ID.SelectionChanged
        SetDataGrid()
    End Sub
End Class

20、按F5进行测试,测试效果是可从下拉列表框中选择班级,并筛选DataGrid中的数据。

图示07:









欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3