ADO.NET怎么一次性返回多个结果

kke_007 2010-06-18 03:08:19
例我有两条SQL语句
Selete * from a;
Selete * from b;
一般我是OPEN两次执行
这样我感觉很浪费
能不能一次性返回多个结果集。




...全文
257 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
niss 2010-06-21
  • 打赏
  • 举报
回复
[Quote=引用楼主 kke_007 的回复:]
例我有两条SQL语句
Selete * from a;
Selete * from b;
一般我是OPEN两次执行
这样我感觉很浪费
能不能一次性返回多个结果集。
[/Quote]

string sql = "select * from a;select * from b;"
执行数据库访问
返回的dataset自动会包含两个datatable
jiezi316 2010-06-21
  • 打赏
  • 举报
回复
DataSet
SamuDra 2010-06-21
  • 打赏
  • 举报
回复
楼上大大很多。。帮顶学习了。
netwar 2010-06-21
  • 打赏
  • 举报
回复
只要每条语句之间用;隔开就可以了,随便你写多少条,理论上。
String strSQL="SELECT * FROM table1;select name from table2;select * from table3";

查询出来结果集为DATASET,里面分别由DATATABLE组成
DataTable dt1=ds.Tables[0];
DataTable dt2=ds.Tables[1];
DataTable dt3=ds.Tables[2];
moondreamyou 2010-06-21
  • 打赏
  • 举报
回复
启用Ado.net的“多重活动结果集”就能open一次,多次访问数据库。

情况为False,要开启只需在连接字符串后面加上“MultipleActiveResultSets=True;”

例如:
"Data Source=.;User ID=sampleuser;Password=1234;MultipleActiveResultSets=True;"
马老虎 2010-06-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 moudy 的回复:]

写错了:
表a的结果:ds.Tables[0]
表b的结果:ds.Tables[1]
[/Quote]

也可以联合查询!
Terry717 2010-06-21
  • 打赏
  • 举报
回复
用DataSet是可以的
lyvscf 2010-06-21
  • 打赏
  • 举报
回复
dataset 不行么? n个table 都可以放进去的...
flyingyinjun 2010-06-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 kfcilikeit 的回复:]
用union去拼啊!
[/Quote]

或用dataset,自动打开关闭连接
指间、魔法师 2010-06-19
  • 打赏
  • 举报
回复
用视图
nextuntil 2010-06-18
  • 打赏
  • 举报
回复
string strSQL = "SELECT * FROM a;SELECT * FROM b";

用DataSet接收

ds.Tables[0]就是a表中记录勒

ds.Tables[1]就是b表中记录勒
YISUKU_LEE 2010-06-18
  • 打赏
  • 举报
回复
你直接返回两个结果集不就行了?

DS.Tables[0] or DS.Tables[1] 这样去标记开就行了啊!

Ds本来就能放多个结果集的!
nocallstle 2010-06-18
  • 打赏
  • 举报
回复
declaer @t1 nvchar(max),@t2 nvchar(max)
select @t1='select 8 from a'
select @t2='select * from b'
exec(@t1+@t2)


前面:(dataSet)ds.tables[0],(dataSet)ds.tables[1],
likevs 2010-06-18
  • 打赏
  • 举报
回复
Selete * from a;
Selete * from b;


这两条语句放在同一个存储过程中运行就可以了,

我看好11楼的代码
bin0403 2010-06-18
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 lost_painting 的回复:]

T-SQL:
SELECT * from table1
SELECT * from table2

C#:
定义一个DataSet去接
[/Quote]

该说的都被说了。
鸭梨山大帝 2010-06-18
  • 打赏
  • 举报
回复
T-SQL:
SELECT * from table1
SELECT * from table2

C#:
定义一个DataSet去接
LIU312591 2010-06-18
  • 打赏
  • 举报
回复
string sql = "Selete * from a Selete * from b";
获取结果绑定到DataSet(如ds)
表a的结果:ds.Table[0]
表b的结果:ds.Table[1]

这个对的,注意返回的一定要是dataset。
lin421204266 2010-06-18
  • 打赏
  • 举报
回复
dataset直接存两个记录集,OPen一次就行了
kiaoqq2010 2010-06-18
  • 打赏
  • 举报
回复
没错。dataSet 只要你返回多个结果集就可以从下标获取各个结果集。
Zhanlixin 2010-06-18
  • 打赏
  • 举报
回复
strSQL="select * from a;select * from b";
DataSet ds = SqlHelper.ExecuteDataset(cn, CommandType.Text, strSQL);

表a的结果:ds.Table[0]
表b的结果:ds.Table[1]
加载更多回复(10)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧