有多个sql 语句都返回dt 当中只有一个字段 怎么把多个dt组合一下 帮顶一个空件如(repeater,datalist,girdview ) 急急

jin225 2008-10-21 09:21:29
有多个sql 语句都返回dt 当中只有一个字段 怎么把多个dt组合一下 帮顶一个空件如(repeater,datalist,girdview )
比如第一个dt 当中有的字段返回四行 第二个返回五行 那么空件能显示是九行数据吗 就是把返回的dt都连起来
...全文
109 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
gjfizx 2008-10-21
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 cong1212 的回复:]
我现在这里用DataTable方式给做
假设你两个查询都返回的是DataTable,dt1里有一个title为第一条查询的语句:select title from news where newsid=1
dt2里有一个title为第二条查询的语句:select title from culture where culture=1
第一个有4行,第二个有5行
DataTable dt = new DataTable();
dt.Columns.Add("title1");
dt.Columns.Add("title2");
for (int i = 0; i < dt2.Rows.Count; i++)
{
DataRow dr = dt.NewRow(…
[/Quote]up
lovehongyun 2008-10-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 fang1572 的回复:]
DataTable.Merge (DataTable)
[/Quote]

这个方法即可.

如果没有什么特殊要求的话最好在sql中就搞定
-->
union all
BernardSun 2008-10-21
  • 打赏
  • 举报
回复

select title from news where newsid=1
union all
select title from culture where cultureid=1

就行了,你要非用两个就前面几位的方法
cong1212 2008-10-21
  • 打赏
  • 举报
回复
我们要先理解Dataset和dataTable的原理,dataSet称为数据集,类似数据库,dataTable就如同他名一样,类似数据库中的表,GridView的显示方式就如同显示一张表,所以我们对数据绑定时,我们都是绑定一些类似表结构的数据,如List,dataTable等,绑定dataset时,一般也是绑定dataset的一个表
xyhuan 2008-10-21
  • 打赏
  • 举报
回复
若是dt查询出来的的表结构是一样的,也可以把他们全部组合到dataset当中去啊.然后再跟GridView绑定
cong1212 2008-10-21
  • 打赏
  • 举报
回复
我现在这里用DataTable方式给做
假设你两个查询都返回的是DataTable,dt1里有一个title为第一条查询的语句:select title from news where newsid=1
dt2里有一个title为第二条查询的语句:select title from culture where culture=1
第一个有4行,第二个有5行
DataTable dt = new DataTable();
dt.Columns.Add("title1");
dt.Columns.Add("title2");
for (int i = 0; i < dt2.Rows.Count; i++)
{
DataRow dr = dt.NewRow();
if (dt1.Rows.Count <= i)
{
dr[0] = null;
}
else
{
dr[0] = dt1.Rows[i][0];
}
dr[1] = dt2.Rows[i][0];
dt.Rows.Add(dr);

}
GridView1.DataSource = dt;
GridView1.DataBind();
jin225 2008-10-21
  • 打赏
  • 举报
回复
select title from news where newsid=1
查询结果是 title
1 'newstitle'
填充一个datatable dtnews

select title from culture where culture=1
查询结果是 title
1 'titleCulture'
填充一个datatabale dtculutre

现在怎么让控件用一列显示 nestitle
titleculture
cong1212 2008-10-21
  • 打赏
  • 举报
回复
private DataTable createTable(int rowCount,string column)
{
DataTable dt=new DataTable();
dt.Columns.Add(column);
for (int i = 0; i < rowCount; i++)
{
DataRow dr=dt.NewRow();
dr[column] = "Test" + i.ToString();
dt.Rows.Add(dr);
}
return dt;
}
上面是生成table的方法,跟你得数据库查询出来是一个道理
DataTable dt1 = createTable(4, "column1");
DataTable dt2 = createTable(5, "column2");
DataTable dt = new DataTable();
dt.Columns.Add(dt1.Columns["column1"].ColumnName);
dt.Columns.Add(dt2.Columns["column2"].ColumnName);
for (int i = 0; i < dt2.Rows.Count; i++)
{
DataRow dr = dt.NewRow();
if (dt1.Rows.Count <= i)
{
dr[0] = null;
}
else
{
dr[0] = dt1.Rows[i][0];
}
dr[1] = dt2.Rows[i][0];
dt.Rows.Add(dr);

}
GridView1.DataSource = dt;
GridView1.DataBind();
wackyboy 2008-10-21
  • 打赏
  • 举报
回复
dt.Merge or ds.Merge
你选的那三个控件都可以吧
only_mandy 2008-10-21
  • 打赏
  • 举报
回复
或者查的时候将你要弄的字段都拼到一起不就可以了,比如select 字段1,字段2 from 表1,表2。。。
_谁啊 2008-10-21
  • 打赏
  • 举报
回复
字段名相同,用DataTable.Merge就可以了!
fang1572 2008-10-21
  • 打赏
  • 举报
回复
DataTable.Merge (DataTable)
jack20080808 2008-10-21
  • 打赏
  • 举报
回复
能联表查询最好连表查询,这种组合效率影响很大
BernardSun 2008-10-21
  • 打赏
  • 举报
回复
不知道你要查什么
不过在SQL里写union all也比用多条sql查,再一个个填充有效率
only_mandy 2008-10-21
  • 打赏
  • 举报
回复
是要把这几个dt中的字段都罗在一个列中吗?还是分开一个dt中的字段是一列?

62,041

社区成员

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

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

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

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