VB 2010 (65)查询表达式

查询表达式

分段说明
ProjectSelect <expression>
FilterWhere <expression>,Distinct
Test

Any(<expression>),

All(<expression>)

Join<expression>  Join <expression> On <expression> Equals <expression>
Group

Group By <expression>,

Into<expression>,

<expression> Group Join <decision> On <expression> Equals<expression> Into<expression>

Aggregate

Count(<expression>),

Sum(<expression>),

MIn(<expression>),

Max(<expression>),

Avg(<expression>)

Partition

Skip[While]<expression>,

Take[While]<expression>

Set

Union,

Intersect,

Except

Order

Order By <expression>,

<expression>[Ascending|descending]

Imports System.Linq
Imports System.Data.SqlClient

Module Module1

    Sub Main()
        'testSimpeSelect()
        InsertTitle()
        UpdateTitle()

        DeleteTitle()


        Console.Read()
    End Sub

    Private Sub testSimpeSelect()
        Dim dc As New pubsDataContext
        Dim query1 = From p In dc.titles Select p
        For Each item In query1
            Console.WriteLine(item.title_id & ":" & item.title)
        Next
        Console.WriteLine("查询1-------------------------------------------")

        Dim query2 = From p In dc.titles
                     Where (p.title.StartsWith("S"))
                     Select p
        For Each item In query2
            Console.WriteLine(item.title_id & ":" & item.title)
        Next
        Console.WriteLine("查询2-------------------------------------------")

        Dim query3 = From p In dc.titles
                    Where p.title.StartsWith("S")
                    Where p.title.EndsWith("?")
        For Each item In query3
            Console.WriteLine(item.title_id & ":" & item.title)
        Next
        Console.WriteLine("查询3-------------------------------------------")

        Dim query4 = From t In dc.titles
                    Join s In dc.sales
                    On s.title_id Equals t.title_id
                    Join st In dc.stores
                    On st.stor_id Equals s.stor_id
                    Order By st.stor_id
                    Select st.stor_name, t.title, s.qty
        For Each item In query4
            Console.WriteLine("{0} sold{1} copies of '{2}'", item.stor_name, item.qty, item.title)
        Next
        Console.WriteLine("查询4-------------------------------------------")

        Dim query5 = From t In dc.titles
                    Join s In dc.sales
                    On s.title_id Equals t.title_id
                    Order By s.stores.state Ascending
                    Group s By Key = s.stores.state
                    Into Group
                    Select Key, Group
        For Each item In query5
            Console.WriteLine("Sales for {0}", item.Key)
            For Each s In item.Group
                Console.WriteLine("{0} - {1} copies", s.titles.title, s.qty)
            Next
        Next
        Console.WriteLine("查询5-------------------------------------------")


        Dim query6 = dc.GetAllAuthors
        For Each item In query6
            Console.WriteLine(item.au_fname & "  " & item.state)
        Next
        Console.WriteLine("查询6-------------------------------------------")

        Console.WriteLine("Press ENTER to exit")
    End Sub

    Private Sub InsertTitle()
        Dim dc As New pubsDataContext
        Console.WriteLine("Titles before insert:{0}", dc.titles.Count)
        Dim newTilte As New titles
        With newTilte
            .title_id = "NU1234"
            .title = "Some new title"
            .type = "test"
            .pubdate = New DateTime(2010, 1, 1)
            .notes = "Added via LINQ"
            .price = 50.0
        End With
        dc.titles.InsertOnSubmit(newTilte)

        Console.WriteLine("Titles after insert,but before sumit:{0}", dc.titles.Count)
        dc.SubmitChanges()
        Console.WriteLine("Titles after submit :{0}", dc.titles.Count)
    End Sub

    Private Sub UpdateTitle()
        Dim dc As New pubsDataContext
        Dim aTitle = (From t In dc.titles
                    Where t.title_id = "NU1234"
                    Select t).Single
        Console.WriteLine("Record befor update:{0}", aTitle.title)

        aTitle.title = "Update title"
        aTitle.price = 45.95
        dc.SubmitChanges()

        Console.WriteLine("Record after update:{0}", aTitle.title)
    End Sub

    Private Sub DeleteTitle()
        Dim dc As New pubsDataContext
        Dim theTitles = From t In dc.titles
                      Order By t.title_id Select t
        For Each t As titles In theTitles
            If t.title_id = "NU1234" Then
                dc.titles.DeleteOnSubmit(t)
            End If
        Next

        Console.WriteLine("Titles after delete,but before submit:{0}", dc.titles.Count)
        dc.SubmitChanges()
    End Sub
End Module


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ngbshzhn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值