怎么将三个DataTable拼接到一起...

Yq_pY 2011-10-31 12:05:28
我做了一个模糊查询 但是又三张表是分开的 各有各的集合 所以没办法输入关键字显示在一个表里面

所以 我想把三个DataTable拼接到一起,拼接成一个新的在显示 所以拼接DataTable不会 有没有会的

发点代码瞧瞧 或者给我说说啦 谢谢
...全文
681 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yq_pY 2011-10-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wangzhi0321 的回复:]
以下是我操作多个表,然后赋给数据源控件代码,供参考:
protected void getsousuodata()
{
DataTable dt = new DataTable();
dt.Columns.Add("标题", typeof(string));
dt.Columns.Add("添加时间", typeof(string));
dt.Columns.Ad……
[/Quote]

这位楼上大哥 你跟我写的那个有点相似 不过我并不是很懂这个 麻烦说一下  万分感激
Yq_pY 2011-10-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 beyond_me21 的回复:]
select 表1的字段1 as 起一个相同的新字段名 from 表1 where 字段 like '%关健字%'
union all
select 表2的字段1 as 起一个相同的新字段名 from 表2 where 字段 like '%关健字%'
union all
select 表3的字段1 as 起一个相同的新字段名 from 表1 where 字段 like '%关健字%'

……
[/Quote]

这位楼上大哥, 我也是想用这个  这个比较方便一些  但是我的表里面还有一个字段叫属于  就是这个
省 属于哪  市属于哪  区属于 哪哪的 这个怎么判断啊  不同的三个表
ycproc 2011-10-31
  • 打赏
  • 举报
回复
自己创建一个Datatable
然后三个Datatable分别循环取列写到创建的Datatable里面
wangzhi0321 2011-10-31
  • 打赏
  • 举报
回复
以下是我操作多个表,然后赋给数据源控件代码,供参考:
protected void getsousuodata()
{
DataTable dt = new DataTable();
dt.Columns.Add("标题", typeof(string));
dt.Columns.Add("添加时间", typeof(string));
dt.Columns.Add("Html", typeof(string));
string sqlctx = "select Name,AddTime,Html from CtxNews where Name like '%" + strtitle + "%' order by AddTime desc";
SqlDataReader drctx = MySqlHelper.ExecuteReader(sqlctx, CommandType.Text, false);
if (drctx.HasRows)
{
while (drctx.Read())
{
DataRow dr=dt.NewRow();
dr["标题"] = drctx["Name"].ToString();
dr["添加时间"] = drctx["AddTime"].ToString();
dr["Html"] = drctx["Html"].ToString();
dt.Rows.Add(dr) ;
}
}
drctx.Close();
string sqlsq = "select Name,AddTime,Html from SqNews where Name like '%" + strtitle + "%' order by AddTime desc";
SqlDataReader drsq = MySqlHelper.ExecuteReader(sqlsq, CommandType.Text, false);
if (drsq.HasRows)
{
while (drsq.Read())
{
DataRow dr = dt.NewRow();
dr["标题"] = drsq["Name"].ToString();
dr["添加时间"] = drsq["AddTime"].ToString();
dr["Html"] = drsq["Html"].ToString();
dt.Rows.Add(dr);
}
}
drsq.Close();
GridView1.DataSource = dt.DefaultView[0].DataView;
GridView1.DataBind();

//Session["titless"] = null;
}
beyond_me21 2011-10-31
  • 打赏
  • 举报
回复
select 表1的字段1 as 起一个相同的新字段名 from 表1 where 字段 like '%关健字%'
union all
select 表2的字段1 as 起一个相同的新字段名 from 表2 where 字段 like '%关健字%'
union all
select 表3的字段1 as 起一个相同的新字段名 from 表1 where 字段 like '%关健字%'

查询出来的结果就在同一个结果集里了
小童 2011-10-31
  • 打赏
  • 举报
回复
sql里用uniq all连接
yan267 2011-10-31
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 yq_py 的回复:]
引用 8 楼 lmaohuanl 的回复:
引用 2 楼 beyond_me21 的回复:
select 表1的字段1 as 起一个相同的新字段名 from 表1 where 字段 like '%关健字%'
union all
select 表2的字段1 as 起一个相同的新字段名 from 表2 where 字段 like '%关健字%'
union all
select 表3的字段……
[/Quote]

select 表1的字段1 as 起一个相同的新字段名, '表1' as '属于' from 表1 where 字段 like '%关健字%'
union all
select 表2的字段1 as 起一个相同的新字段名,'表2' as '属于' from 表2 where 字段 like '%关健字%'
union all
select 表3的字段1 as 起一个相同的新字段名,'表3' as '属于' from 表1 where 字段 like '%关健字%'


多加一列,表明这个数据来源于哪个表不就可以了?

allen0118 2011-10-31
  • 打赏
  • 举报
回复
用uniq all连接
Yq_pY 2011-10-31
  • 打赏
  • 举报
回复
[Quote=引用 32 楼 xx_mm 的回复:]
DataTable.Merge()
[/Quote]

怎么使用啊
蔡袅 2011-10-31
  • 打赏
  • 举报
回复
DataTable.Merge()
catslee 2011-10-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wangzhi0321 的回复:]
以下是我操作多个表,然后赋给数据源控件代码,供参考:
protected void getsousuodata()
{
DataTable dt = new DataTable();
dt.Columns.Add("标题", typeof(string));
dt.Columns.Add("添加时间", typeof(string));
dt.Columns.Ad……
[/Quote]
这个不是可以嘛?
Yq_pY 2011-10-31
  • 打赏
  • 举报
回复
谁能手把手教下我 有点弄不懂了 不好意思各位  QQ869910106
persuit666 2011-10-31
  • 打赏
  • 举报
回复
#region
/// <summary>
/// 合并数据集中结构相同的数据表
/// </summary>
/// <returns>合并后的数据表</returns>
public DataTable MergeDataTable(DataSet ds)
{
try
{
DataTable mytb=new DataTable();
int i=0;
foreach(DataTable dt in ds.Tables)
{
if(i==0)
{
foreach(DataColumn dc in dt.Columns)
{
mytb.Columns.Add(dc.ColumnName);
}
}

foreach(DataRow dr in dt.Rows)
{
object[] ary = new object[dt.Columns.Count];
dr.ItemArray.CopyTo(ary,0);

mytb.Rows.Add(ary);//如果mytb没有列,此处会报错
}
i++;
}

return mytb;
}
catch(Exception ex)
{
Response.Write("MergeDataTable():"+ex.Message);
return null;
}
}
#endregion

我这个是数据集的,你可以用DataTable数组,稍微改下代码就ok
likevs 2011-10-31
  • 打赏
  • 举报
回复
顶3楼,不解释

对于会玩ADO.NET的人,甚至可以在内存中生成一个简化版本的小型数据库,更别说表了
指间的风 2011-10-31
  • 打赏
  • 举报
回复
你可以定义一个新的对象类型,
这个类型用于承载你用linq查询出得数据。
指间的风 2011-10-31
  • 打赏
  • 举报
回复
[Quote=引用楼主 yq_py 的回复:]
我做了一个模糊查询 但是又三张表是分开的 各有各的集合 所以没办法输入关键字显示在一个表里面

所以 我想把三个DataTable拼接到一起,拼接成一个新的在显示 所以拼接DataTable不会 有没有会的

发点代码瞧瞧 或者给我说说啦 谢谢
[/Quote]

linq 可以直接查询的,类似 sql
xiakai4640256 2011-10-31
  • 打赏
  • 举报
回复
像这种东西应该用视图 去拼接 比较快点
Yq_pY 2011-10-31
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 lgf11088 的回复:]
创建一个Datatable
然后从三个Datatable分别取数据写到创建的Datatable里面
最后把创建的datatable 做为数据源
[/Quote]

怎么做到  有例子嘛  
ChinaXtHuLang 2011-10-31
  • 打赏
  • 举报
回复
as是别名啊。这样方便一起使用。。
如先前是这样:dr["标题"]。最好可以dr[0] 0第几列。








论坛签名======================================================================

Yq_pY:你好!
截至 2011-10-31 12:05:28 前:
你已发帖 1 个, 未结贴 1 个;
结贴率为: 0.00%

当您的问题得到解答后请及时结贴.

http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html
http://topic.csdn.net/u/20100428/09/BC9E0908-F250-42A6-8765-B50A82FE186A.html
http://topic.csdn.net/u/20100626/09/f35a4763-4b59-49c3-8061-d48fdbc29561.html

如何给分和结贴?
http://community.csdn.net/Help/HelpCenter.htm#结帖

如何给自己的回帖中也加上签名?
http://blog.csdn.net/q107770540/archive/2011/03/15/6250007.aspx
lgf11088 2011-10-31
  • 打赏
  • 举报
回复
创建一个Datatable
然后从三个Datatable分别取数据写到创建的Datatable里面
最后把创建的datatable 做为数据源
加载更多回复(15)

62,268

社区成员

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

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

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

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