C# 如何实现sqlserver 2008中两个数据库中两张表的关联查询。 如: sleect * from db1.tab1,db2.tab2;
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 如何实现sqlserver 2008中两个数据库中两张表的关联查询。 如: sleect * from db1.tab1,db2.tab2;相关的知识,希望对你有一定的参考价值。
在C#中如何执行这样的查询语句。
通过关联字段进行联接查询select a.*,b.* from db1.tab1 a,db2.tab2 b where a.关联字段 = b.关联字段
比如说:
db1.tab1表里有一个字段叫user_id主键,db2.tab2引用了db1.tab1的主键user_id
查询时就可以写
select a.*,b.* from db1.tab1 a,db2.tab2 b where a.user_id = b.user_id追问
恩,这个我知道,但是在C#中一次连接一个数据库,而要操作这个这个sql语句,需要的是连接两个数据库才能操作这个数据库。这样的话连接字符串怎么写呢。
追答C#不可能同时去连接两个数据库的,所有你可以在数据库里面写个视图
C#连接之后去查询这个视图,代码如下
create view 视图名
as
select a.*,b.* from db1.tab1 a,db2.tab2 b where a.user_id = b.user_id
然后c#查询时
select * from 视图名
请问 asp.net(c#) 如何读取sqlserver表的字段名及数据类型?
参考技术A Select字段名=rtrim(b.name),
主键=CASE WHEN h.id IS NOT NULL THEN 'PK' ELSE '' END,
字段类型=type_name(b.xusertype)+CASE WHEN b.colstat&1=1 THEN '[ID(' + CONVERT(varchar, ident_seed(a.name))+','+CONVERT(varchar,ident_incr(a.name))+')]' ELSE '' END,
长度=b.length,
允许空=CASE b.isnullable WHEN 0 THEN 'N' ELSE 'Y' END,
默认值=isnull(e.text, ''),
字段说明=isnull(c.value, '')
FROM sysobjects a, syscolumns b
LEFT OUTER JOIN sysproperties c ON b.id = c.id AND b.colid = c.smallid
LEFT OUTER JOIN syscomments e ON b.cdefault = e.id
LEFT OUTER JOIN (Select g.id, g.colid FROM sysindexes f, sysindexkeys g Where (f.id=g.id)AND(f.indid=g.indid)AND(f.indid>0)AND(f.indid<255)AND(f.status&2048)<>0) h ON (b.id=h.id)AND(b.colid=h.colid)
Where (a.id=b.id)AND(a.id=object_id('要查询的表')) --要查询的表改成你要查询表的名称
orDER BY b.colid
以上是关于C# 如何实现sqlserver 2008中两个数据库中两张表的关联查询。 如: sleect * from db1.tab1,db2.tab2;的主要内容,如果未能解决你的问题,请参考以下文章
C# 连接SQLSERVER2008 提示字符串''后的引号不完整