需要顯示出所有的會員資訊(即memberinfo),排序要求按照會員排序表(membersort)中會員型別(membertype)為0的sortnumber列進行排序。可以總結為三條:1.需要顯示出所有的會員資訊;2.按照會員排序表中的sortnumber列進行排序;3.只按照會員排序表中會員型別為0的會員進行排序。
create
table
memberinfo
(memberid
int,
membername
nvarchar(50
))create
table
membersort
(memberid
int,
sortnumber
int,
membertype
int)
insert
into
memberinfo
values(1
,'a'
)insert
into
memberinfo
values(2
,'b'
)insert
into
memberinfo
values(3
,'c'
)insert
into
memberinfo
values(4
,'d'
)insert
into
memberinfo
values(5
,'e'
)insert
into
membersort
values(1
,5,0
)insert
into
membersort
values(2
,4,0
)insert
into
membersort
values(3
,3,1
)--drop table memberinfo
--drop table membersort
採用傳統的sql方式查詢**:
select[t0
].[memberid],
[t0].
[membername
]from
[dbo].
[memberinfo]as
[t0]left
outer
join
[dbo].
[membersort]as
[t1]on
([t1]
.[membertype]=
0) and([t0
].[memberid]=
[t1].
[memberid])
orderby(
case
when[t1
].[sortnumber]is
notnull
then[t1
].[sortnumber
]else
9999
end)
希望在linq to sql中獲得同樣的支援。
首次嘗試失敗的**:
vardata
=from
m in
db.memberinfo
join
s in
db.membersort
onm.memberid equals s.memberid
&&s.membertype ==0
into
xfrom
cx in
x.defaultifempty()
orderby cx.sortnumber.hasvalue ? cx.sortnumber.value :
9999
select
m;經過修正**如下:
vardata
=from
m in
db.memberinfo
join
s in
db.membersort
onm.memberid equals s.memberid
into
xfrom
cx in
x.where
(d =>
d.membertype ==0
).defaultifempty()
orderby cx.sortnumber.hasvalue ? cx.sortnumber.value :
9999
select
m;關鍵語句即from cx in x.where(d=>d.membertype==0).defaultempty(); 即為返回連線組合當中membertype==0或不存在membertype值的資料集合。
tbody 加滾動條
在頁面中給tbody加滾動條保持thead不動。rel stylesheet type text css href main.css head class table head1th head2th head3th head4th head5th head6th tr thead 1td 1td 1...
div 加滾動條
引用 overflow auto 滾動條相關顏色屬性 face color 滑塊顏色 hightlight color 高亮顏色 3dlight color 三維光線顏色 darkshadow color 暗影顏色 shadow color 陰影顏色 arrow color 箭頭顏色 tack co...
Linq to sql實現簡單查詢和分頁
最近跟著做高效平台的專案,在積累專案經驗的同時也吸收了不少新的知識,其中很讓我欣喜的是居然可以不用寫sql語句就能運算元據庫,對於sql語句經常出問題的程式設計人員來講毫無疑問真是雪中送炭呀。此處的 炭 就是linq to sql啦。linq to sql是linq net語言整合查詢 的一部分,用...