社区
C#
帖子详情
ado.net有木有办法执行这种一条sql中涉及两个数据库的查询?
ycxjex2006
2012-04-21 04:03:59
ado.net有木有办法执行这种一条sql中涉及两个数据库的查询?
select * from UserAuthority.dbo.User_P join
ChangeDoc.dbo.Comment on
UserAuthority.dbo.User_P.User_P_ID = ChangeDoc.dbo.Comment.User_P_ID
查了下 没有找到解决方案
求教
求链接
求批评
...全文
408
15
打赏
收藏
ado.net有木有办法执行这种一条sql中涉及两个数据库的查询?
ado.net有木有办法执行这种一条sql中涉及两个数据库的查询? select * from UserAuthority.dbo.User_P join ChangeDoc.dbo.Comment on UserAuthority.dbo.User_P.User_P_ID = ChangeDoc.dbo.Comment.User_P_ID 查了下 没有找到解决方案 求教 求链接 求批评
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
色拉油
2012-04-22
打赏
举报
回复
这不是asp.net问题,是数据库问题,数据库能,asp.net就能
查查跨数据库查询
使我做你和平之子
2012-04-22
打赏
举报
回复
如果两个数据库在同一个数据库实例上,只要同时为两个数据库的用户或者是管理员,象你那种写法就可以了。
如果两个数据库不在同一实例上,需要把其中一个数据库作为另外一个数据库的linked server,打开management studio,在Server objects-->Linked Servers里设置。
设置完后,只要写一个数据库的连接字符串就能通过linked server访问到另一个数据库.
比如现在连到数据库a,访问linked server B的写法大致就和你的写法一致。
你现在能在management studio里执行sql,应该是即使需要linked server,也已经设置好。
你可以把代码放在存储过程里执行,ado.net那头就很简单了吧。
需要注意的是,如果用linked server,应该尽量避免直接join两个不同数据库的表,因为linked server的性能很差,应该先把linked server的数据全部select到本地的临时表里,然后再和本地的数据库里的表做join.
ycxjex2006
2012-04-21
打赏
举报
回复
[Quote=引用 12 楼 的回复:]
假设我打开一个Excel,然后用其数据抽取功能取得了SQL Server数据库表,我可不会去说ado.net必须实现excel表的功能。
你在查询分析器上每一步细节,都要自己好好看看在ado.net程序中是否保持一致。如果ado.net那边跟查询分析器的环境设置根本不同,你要求ado.net执行所有在查询分析器上可执行的sql语句就没有意义。
[/Quote]
嗯 我并不是特别理解ado.net的执行机制.
事实上我后来只用了其中一个数据库的Connection就执行出了这个包含两个数据库的SQL语句.
可能是我用的SQL账号拥有访问这两个数据库的权限, 虽然我在链接字符串中指定了数据库.
以专业开发人员为伍
2012-04-21
打赏
举报
回复
假设我打开一个Excel,然后用其数据抽取功能取得了SQL Server数据库表,我可不会去说ado.net必须实现excel表的功能。
你在查询分析器上每一步细节,都要自己好好看看在ado.net程序中是否保持一致。如果ado.net那边跟查询分析器的环境设置根本不同,你要求ado.net执行所有在查询分析器上可执行的sql语句就没有意义。
以专业开发人员为伍
2012-04-21
打赏
举报
回复
你打开插叙你分析器的查询窗口的时候,打开的是哪一个数据库?你是用什么身份的登录的SQL Server数据库?你是否首先link了其它数据库?
这些都不与你的所谓“SqlCommand和SqlDataAdapter”程序中的数据库连接一致吧?!你在ado.net中又是一什么身份登录的sql server?登录的是哪一个数据库?是否在一次ado.net事务会话中首先使用executeNonQuery方法连接了其它数据库?
ycxjex2006
2012-04-21
打赏
举报
回复
[Quote=引用 8 楼 的回复:]
引用 3 楼 的回复:
????不是啊 语句对的啊
但是SqlCommand和SqlDataAdapter都需要指定一个SqlConnection啊
不能指定多个
谁跟你说是对的呢?你给个测试出来说明它是“对的”!
[/Quote]
-, - 涛哥 不对我就不会说了
dalmeeme
2012-04-21
打赏
举报
回复
用存储过程不知行不行?数据库可能要做一定设置,自己百度搜下。
以专业开发人员为伍
2012-04-21
打赏
举报
回复
[Quote=引用 3 楼 的回复:]
????不是啊 语句对的啊
但是SqlCommand和SqlDataAdapter都需要指定一个SqlConnection啊
不能指定多个
[/Quote]
谁跟你说是对的呢?你给个测试出来说明它是“对的”!
ycxjex2006
2012-04-21
打赏
举报
回复
原来在同一台服务器上的话 只要随意打开一个实例, 就可以执行了!
ycxjex2006
2012-04-21
打赏
举报
回复
原来在同一服务器上, 只要随意打开一个实例 就可以随便查询了啊!
Ki1381
2012-04-21
打赏
举报
回复
一条语句跨库查是可以的,跨服务器查都可以。
ConnectionString 只要指定一个就可以了,Sql语句中表就按LZ主贴中提到的 库名.架构名.表名 这样写。当然这个ConnectionString中使用的用户对两个库都要有权限。
可以先在查询分析器里做一下确认SQL语句的。
事理
2012-04-21
打赏
举报
回复
两个表在不同数据库中,查询是不可以的,在同一个数据库中是可以查询的。
ycxjex2006
2012-04-21
打赏
举报
回复
[Quote=引用 2 楼 的回复:]
主要是你在SQLServer中写出full jion 或left jion 之类的语句就可以了
和ado.net应该关系不大
[/Quote]
????不是啊 语句对的啊
但是SqlCommand和SqlDataAdapter都需要指定一个SqlConnection啊
不能指定多个
之前是分两次取值 再在程序中拼的
现在想换一个方法
orochiheart
2012-04-21
打赏
举报
回复
主要是你在SQLServer中写出full jion 或left jion 之类的语句就可以了
和ado.net应该关系不大
orochiheart
2012-04-21
打赏
举报
回复
用full jion把两个表联合起来 就当一个表使用。 条件是以某一列相同 比如两表中的GUID相同
走进JavaWeb技术世界1:Web后端与J2EE的由来
后端程序员都干些什么 转自:微信公众号 码农翻身 这个问题来自于QQ网友,一句两句说不清楚,索性写个文章。 我刚开始做Web开发的时候,根本没有前端,后端之说。 原因很简单,那个时候服务器端的代码就是一切:接受浏览器的请求,实现业务逻辑,访问
数据库
,用JSP生成HTML,然后发送给浏览器。 即使后来Javascript在浏览器
中
添加了一些AJAX的效果,那也...
学位论文-—木马程序设计及植入技术设计.doc
学位论文-—木马程序设计及植入技术设计.doc
【西门子PLC例程】-
一条
生产线的程序400、300、数控系统都有用上3.zip
【西门子PLC例程】-
一条
生产线的程序400、300、数控系统都有用上3.zip
【欧母龙PLC例程】-FB Scale with parameters.zip
【欧母龙PLC例程】-FB Scale with parameters.zip
【欧母龙PLC例程】-V700-V720 RFID Protocol Macro.zip
【欧母龙PLC例程】-V700-V720 RFID Protocol Macro.zip
C#
111,088
社区成员
642,552
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章