其中姓名一列的值完全相同,请问怎样将三个表合并成一个DataTable,使得结果列为:学生姓名,语文成绩,数学成绩,英语成绩?
15 个解决方案
#1
谁来帮帮我啊。。。Thks!!
#2
你数据是怎么来的,为何先分开呢,使用一个视图填充到一个DataTable不就完了。
#3
创建一个中间表,把3个表的数据一个个读进去。。。。。。。。
#4
你是从数据库读取数据?如果是从数据库读取的话用多表查询语句填充到一个DataTable就行了...不用那么麻烦
#5
是的,在SQL 中我会写多表查询语句。只是这三个表是在不同数据库里面,在写连接字符串的时候就不知道怎样写了,只能想到这种方法。。。有什么方法可以一次查询出来么?
#6
不同的库?分机么???
机器是否在同一个欲望内,可以建立sql的信任连接。。。
其实这样麻烦,直接程序去读三个库中的三个表 过渡一下好了~
机器是否在同一个欲望内,可以建立sql的信任连接。。。
其实这样麻烦,直接程序去读三个库中的三个表 过渡一下好了~
#7
sql: select 英语表.生名,英语表.成绩,语文表.成绩,数学表.成绩 from 英语表 ,语文表,数学表 where 英语表.生名=语文表.生名 and 英语表.生名=数学表.生名
这应该就是楼主想要的
这应该就是楼主想要的
#8
用linq对DataTable进行连接
#9
yeah..i think linq2datatable is one way:
var query=from t1 in dt1.AsEnumerable()
join t2 in dt2.AsEnumerable()
on t1.Field<int>("ID") equals t2.Field<int>("ID")
select new {ID=t1.Field<int>("ID"),语文成绩=t1.Field<int>("语文成绩"),
数学成绩=t2.Field<int>("数学成绩")}
var query=from t1 in dt1.AsEnumerable()
join t2 in dt2.AsEnumerable()
on t1.Field<int>("ID") equals t2.Field<int>("ID")
select new {ID=t1.Field<int>("ID"),语文成绩=t1.Field<int>("语文成绩"),
数学成绩=t2.Field<int>("数学成绩")}
#10
将三个表的关键字都设成“学生姓名”
用
table1.merge(talbe2,ture)
table1.merge(table3,ture)
不就行了?
#11
开始的想法只是要将三个表放入一个DataGridView中显示出来的,就想到将三个表合成一个。现在想想没必要这么麻烦,用循环直接将各字段的值与那控件列绑定就行了。。呵呵,谢谢各位发表的观点,让我学到了不同的思路。。。
#12
楼主,你应该创建一个视图
#13
好啦,谢谢大家的看法!!
#14
datatable dt=new datatable()
Column 姓名=new Column()
Column 语文=new Column()
column 数学=new column()
Column 英语=new Column()
dt.addCoumn(姓名)
dt.addCoumn(语文)
dt.addCoumn(数学)
dt.addCoumn(英语)
Row R1=dt.Createrow()
循环给 r1["姓名"] 赋值
后面同样用循环和新建的表姓名列相同的话,就赋与 成绩分数
Column 姓名=new Column()
Column 语文=new Column()
column 数学=new column()
Column 英语=new Column()
dt.addCoumn(姓名)
dt.addCoumn(语文)
dt.addCoumn(数学)
dt.addCoumn(英语)
Row R1=dt.Createrow()
循环给 r1["姓名"] 赋值
后面同样用循环和新建的表姓名列相同的话,就赋与 成绩分数
#15
pivot
#1
谁来帮帮我啊。。。Thks!!
#2
你数据是怎么来的,为何先分开呢,使用一个视图填充到一个DataTable不就完了。
#3
创建一个中间表,把3个表的数据一个个读进去。。。。。。。。
#4
你是从数据库读取数据?如果是从数据库读取的话用多表查询语句填充到一个DataTable就行了...不用那么麻烦
#5
是的,在SQL 中我会写多表查询语句。只是这三个表是在不同数据库里面,在写连接字符串的时候就不知道怎样写了,只能想到这种方法。。。有什么方法可以一次查询出来么?
#6
不同的库?分机么???
机器是否在同一个欲望内,可以建立sql的信任连接。。。
其实这样麻烦,直接程序去读三个库中的三个表 过渡一下好了~
机器是否在同一个欲望内,可以建立sql的信任连接。。。
其实这样麻烦,直接程序去读三个库中的三个表 过渡一下好了~
#7
sql: select 英语表.生名,英语表.成绩,语文表.成绩,数学表.成绩 from 英语表 ,语文表,数学表 where 英语表.生名=语文表.生名 and 英语表.生名=数学表.生名
这应该就是楼主想要的
这应该就是楼主想要的
#8
用linq对DataTable进行连接
#9
yeah..i think linq2datatable is one way:
var query=from t1 in dt1.AsEnumerable()
join t2 in dt2.AsEnumerable()
on t1.Field<int>("ID") equals t2.Field<int>("ID")
select new {ID=t1.Field<int>("ID"),语文成绩=t1.Field<int>("语文成绩"),
数学成绩=t2.Field<int>("数学成绩")}
var query=from t1 in dt1.AsEnumerable()
join t2 in dt2.AsEnumerable()
on t1.Field<int>("ID") equals t2.Field<int>("ID")
select new {ID=t1.Field<int>("ID"),语文成绩=t1.Field<int>("语文成绩"),
数学成绩=t2.Field<int>("数学成绩")}
#10
将三个表的关键字都设成“学生姓名”
用
table1.merge(talbe2,ture)
table1.merge(table3,ture)
不就行了?
#11
开始的想法只是要将三个表放入一个DataGridView中显示出来的,就想到将三个表合成一个。现在想想没必要这么麻烦,用循环直接将各字段的值与那控件列绑定就行了。。呵呵,谢谢各位发表的观点,让我学到了不同的思路。。。
#12
楼主,你应该创建一个视图
#13
好啦,谢谢大家的看法!!
#14
datatable dt=new datatable()
Column 姓名=new Column()
Column 语文=new Column()
column 数学=new column()
Column 英语=new Column()
dt.addCoumn(姓名)
dt.addCoumn(语文)
dt.addCoumn(数学)
dt.addCoumn(英语)
Row R1=dt.Createrow()
循环给 r1["姓名"] 赋值
后面同样用循环和新建的表姓名列相同的话,就赋与 成绩分数
Column 姓名=new Column()
Column 语文=new Column()
column 数学=new column()
Column 英语=new Column()
dt.addCoumn(姓名)
dt.addCoumn(语文)
dt.addCoumn(数学)
dt.addCoumn(英语)
Row R1=dt.Createrow()
循环给 r1["姓名"] 赋值
后面同样用循环和新建的表姓名列相同的话,就赋与 成绩分数
#15
pivot