【问题标题】:How can i select from more than one table in a SqlDataSource asp.net如何从 SqlDataSource asp.net 中的多个表中进行选择
【发布时间】:2013-09-14 09:48:55
【问题描述】:

我有一个网页,它将从三个表中加载数据 有没有办法使用 Sqldatasource 一次加载所有数据,还是我必须在编码中完成?

我也想排序。但我知道该怎么做。所有数据都进入一个gridview,这就是为什么我只想使用一个Sqldatasource。

这是我目前所拥有的:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ 
ConnectionStrings:testpicsConnectionString %>" SelectCommand="SELECT * FROM [tball]
select * from tb1
select * from tb2"></asp:SqlDataSource>

我只是添加

sort id desc

对他们所有人?

我只是想知道一个Sqldatasource可以做到吗?

顺便说一句,我正在使用 c# 和 sql(显然)

抱歉忘记添加表格中的架构

所有表都是一样的:它们有 id、desc 和 pic

id int primary key identity not null,
[desc] varchar(max) null,
pic varbinary(max) null

用于所有表格。 所以如果我必须加入,我会在哪里或加入什么?

【问题讨论】:

  • 您是否尝试在一个 Sqldatasource 中使用 UNION ?请参阅下面的答案。当然,在使用联合时你仍然可以使用 WHERE 子句。例如。选择...其中 id = xx...

标签: c# asp.net sql select sqldatasource


【解决方案1】:

您可以使用UNION 从不同的表中选择列...

select * from tb1
union all 
select * from tb2
union all
select * from tb3
order by id desc;

union all - 将显示结果中的所有记录。
union - 将从结果中删除重复记录。

Union all 将提供更好的性能,因为数据库引擎不会有任何开销来管理结果以删除重复项。

【讨论】:

  • 1+ ,默认情况下,UNION 运算符仅选择不同的值。要允许重复值,请将 ALL 关键字与 UNION 结合使用
【解决方案2】:

您还可以在数据库中创建一个视图,该视图将收集您需要的所有数据,然后在您的 c# 应用程序中进行查询。

【讨论】:

    【解决方案3】:

    Go here: Union

    从表 1 中选择 * 联合所有 从表 2 中选择 * 按 1 排序

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-28
      • 1970-01-01
      • 1970-01-01
      • 2017-08-22
      • 2018-07-25
      • 1970-01-01
      • 2021-02-09
      • 1970-01-01
      相关资源
      最近更新 更多