首页新闻找找看学习计划

新手求教,mvc如何两个数据表中取出某字段数据

0
悬赏园豆:10 [待解决问题]

例如:表1:tab1id, name, type  表2:tab2id, tab1id, imagedata

怎样才能取出表2的imagedata,传入的参数为表1的type,表2的tab2id.

也就是说,type=某值,得到符合要求的tab1id(主键),到表2再找符合tab2id(主键)=某值,tab1id=某值的数据,最后取出imagedata字段的数据

时光刺客的主页 时光刺客 | 初学一级 | 园豆:60
提问于:2013-10-21 10:03
< >
分享
所有回答(5)
1
from a in table1 
join 
b in table2 on a.tab1id equals b.tab1id
where a.type= yourType and b.tab2id = yourTab2id
select b.imagedata;
jone_e | 园豆:1410 (小虾三级) | 2013-10-21 10:45
var result=from a in table1 
join 
b in table2 on a.tab1id equals b.tab1id
where a.type= yourType and b.tab2id = yourTab2id
select b.imagedata;

 

我用 var类型来接收

 

where之后为什么会提示无法将string转换为隐式bool, and 跟 select都无效了。(Where之后整段都不行了),还请指教

此外我想用byte[]去接受data,在单个表的时候我是用Single返回序列中的唯一元素,但现在两个表不行了.

支持(0) 反对(0) 时光刺客 | 园豆:60 (初学一级) | 2013-10-21 12:42

@时光刺客: 你的数据库定义的表tab1的字段是不是bool类型的,那么你要在linq之前,把 yourType这个参数转化成 bool类型。 也就是 bool yourType = true/false;然后把这个yourType传递给上面的linq。

支持(0) 反对(0) jone_e | 园豆:1410 (小虾三级) | 2013-10-21 13:05

@jone_e: 表的定义中没有用到bool类型,两个表都没有啊,type字段和参数都是string. imagedata字段是byte[],最后我where (a.type== yourType && b.tab2id == yourTab2id)select b.imagedata

加了括号和等号

可是结果得到的是IQueryable<byte[]>类型,赋值给byte[]变量,提示无法将IQueryable<byte[]>转换为byte[]

支持(0) 反对(0) 时光刺客 | 园豆:60 (初学一级) | 2013-10-21 13:17

@时光刺客: 你先看看linq基础知识吧。。

这里如果得到的结果是多个记录,那么用foreach循环上面的linq,也就是:

foreach(var r in result)

{

 r.imagedata//取到数据库的值。

}

从而得到结果。如果得到的数据你确定是一条记录的话,result.first().imagedata。 取得数据库的值。

支持(0) 反对(0) jone_e | 园豆:1410 (小虾三级) | 2013-10-21 18:11
0

这个和MVC无关,看你用的什么方式取数据。如果是Linq或者是EF,就如楼上的方式即可。

关键是sql语句。

幻天芒 | 园豆:36522 (高人七级) | 2013-10-21 11:16
0

在EF的edmx把两个表的关系建立好(1-1,1-多)等,然后生成的实体就会自动有关联的键,直接访问就可以拿到了(会自动生成join的SQL语句)。

http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/reading-related-data-with-the-entity-framework-in-an-asp-net-mvc-application

happydaily | 园豆:581 (小虾三级) | 2013-10-21 11:20
0

使用js的时候可以在加载页面的时候执行某些程序,onload()函数可以 
要用struts可以加一个监听器实现ServletContextListener接口,当项目启动的时候自动从数据库得到数据,可以将数据放入application中,当action提交到相应页面的时候便可以从application中取得数据,实现前台页面!

神奇火箭队 | 园豆:221 (菜鸟二级) | 2013-10-21 11:53
0

select imagedata from 表2 where tab2id=? and tab1id = (select tab1id from 表1 where type=?)

寂灵天 | 园豆:216 (菜鸟二级) | 2013-10-23 15:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册