数据库两张表create table tab1(
n_id int primary key identity,
n_name varchar(16) not null,
n_re varchar(50)
)
insert into tab1 values('色','')
insert into tab1 values('香','')
insert into tab1 values('味','')create table tab2(
d_id int primary key identity,
d_name varchar(16) not null,
d_re varchar(50),
d_nid varchar(16) not null
)
insert into tab2 values('四川美食','','2,3,')
insert into tab2 values('广东美食','','1,2,')
insert into tab2 values('新疆美食','','1,3,')显示的时候如何把tab2的d_nid字段,显示成对应tab1的n_name例如:
d_id d_name d_nid
1 四川美食 香,味ASP.NETSQL读取数据
n_id int primary key identity,
n_name varchar(16) not null,
n_re varchar(50)
)
insert into tab1 values('色','')
insert into tab1 values('香','')
insert into tab1 values('味','')create table tab2(
d_id int primary key identity,
d_name varchar(16) not null,
d_re varchar(50),
d_nid varchar(16) not null
)
insert into tab2 values('四川美食','','2,3,')
insert into tab2 values('广东美食','','1,2,')
insert into tab2 values('新疆美食','','1,3,')显示的时候如何把tab2的d_nid字段,显示成对应tab1的n_name例如:
d_id d_name d_nid
1 四川美食 香,味ASP.NETSQL读取数据
(CASE when charindex('1',d_nid)>0 then '色,' else ''end +
CASE when charindex('2',d_nid)>0 then '香,' else '' end +
CASE when charindex('3',d_nid)>0 then '味,' else ''end
) as n_re
from tab2[code]能满足需求,缺点:如果tab1的数据太多就不合适了
(CASE when charindex('1',d_nid)>0 then '色,' else ''end +
CASE when charindex('2',d_nid)>0 then '香,' else '' end +
CASE when charindex('3',d_nid)>0 then '味,' else ''end
) as n_re
from tab2
能满足需求,缺点:如果tab1的数据太多就不合适了 不好意思,前面的格式乱了
可以放到读取之后 构造你想要的DataTable
如果不想那样弄的话,可以参考一下 http://www.cnblogs.com/yangbingqi/archive/2011/07/02/2096094.html
http://www.cnblogs.com/insus/archive/2013/04/24/3039115.html
可以放到读取之后 构造你想要的DataTable
如果不想那样弄的话,可以参考一下 http://www.cnblogs.com/yangbingqi/archive/2011/07/02/2096094.html
看了一下,问题是我都两个类型不一样
估计他是说作为tab1的条件
不太懂,感觉要查询很多次linq不太会..