标题:怎么实现数据库多表的内查询数据在c#里面显示出来
只看楼主
zxx546
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2010-12-24
结帖率:50%
已结贴  问题点数:20 回复次数:14 
怎么实现数据库多表的内查询数据在c#里面显示出来
string cnst = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=StuMagSys;Data Source=PC-201006091555";    //数据库连接
            SqlConnection str = new SqlConnection(cnst);
            str.Open();
            string sql = "select s.Student_id as 学号,g.Student_name as 姓名 ,j.Course_name as 课程,s.Grade as 成绩,s.SC_semester as 学期,s.SC_year as 学年from Student_course as s,course j , Student g "+
"where  s.Course_id=j.Course_id and  g.Student_id=s.Student_
id";
            SqlCommand obj = new SqlCommand(sql, str);
            SqlDataAdapter c = new SqlDataAdapter();
            c.SelectCommand = obj;
            DataSet dr = new DataSet();
            c.Fill(dr, "Student");
            dataGridView1.DataSource = dr;
            dataGridView1.DataMember = "Student";
因为我这段代码的数据库执行语句是多表的内查询, 到C#dataGridView1控件显示数据的时候不知道是显示哪个表的数据,显示其中的哪个表都出错!
请各位高手帮我看一下代码,帮我解决一下这个问题.谢谢!

[ 本帖最后由 zxx546 于 2010-12-25 14:55 编辑 ]
搜索更多相关主题的帖子: 数据库 姓名 
2010-12-24 23:05
windows118
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-12-24
得分:0 
不懂
2010-12-24 23:17
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8074
专家分:6657
注 册:2005-11-7
得分:0 
请问,楼主是不是连表查询不会?
select * from a, b where a.id = b.id

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2010-12-24 23:27
zxx546
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2010-12-24
得分:0 
回复 3楼 冰镇柠檬汁儿
呵呵!那请问你觉得我上面的查询语句有错误吗?如果你觉得错了,我倒是觉得朋友你的数据库知识还有提高的空间!
2010-12-25 11:52
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8074
专家分:6657
注 册:2005-11-7
得分:3 
“因为我这段代码的数据库执行语句是多表的内查询, 到C#dataGridView1控件显示数据的时候不知道是显示哪个表的数据,”
朋友,你连语句都写好了,但却不知道自己写的语句查的是什么表的数据,你真的确定我需要提高数据库水平,还是你该提高中文水平呢??

[ 本帖最后由 冰镇柠檬汁儿 于 2010-12-25 12:29 编辑 ]

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2010-12-25 12:22
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:0 
 Student_course as s,course j , Student g
请LZ仔细看看表名应该是s j g
   c.Fill(dr, "Student");
如果是Student表 这里fill的应该是 g 而不是Student
如果想显示三个表的信息 我的建议是LZ把这sql写成一个视图这样就很方便了



出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-12-25 13:40
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:0 
回复 3楼 冰镇柠檬汁儿
建议用内连接 汁儿姐 我又进步了 嘿嘿

[ 本帖最后由 wangnannan 于 2010-12-25 14:48 编辑 ]

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-12-25 13:47
zxx546
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2010-12-24
得分:0 
回复 5楼 冰镇柠檬汁儿
呵,我是无语了,你还是好好把标题看好了、题目看清楚了,再回答问题,不要不知道随便就乱写,要搞清楚问题的关键所在,思想要往正确方向去,关键是解决上面的问题,不要钻牛角尖。,不过你说的也有道理!

[ 本帖最后由 zxx546 于 2010-12-25 14:47 编辑 ]
2010-12-25 14:46
zxx546
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2010-12-24
得分:0 
回复 6楼 wangnannan
谢谢!我是想把三个表中我想要的的列和符合关系的数据拿出来,组合成一个新的表显示出来,但是在C#dataGridView1控件上不管显示哪个表都会出错,请你看下我的代码详细指点一下!谢谢,有例子更好!

[ 本帖最后由 zxx546 于 2010-12-25 14:56 编辑 ]
2010-12-25 14:55
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:15 
回复 9楼 zxx546
1 查询多表信息 我的方式通常都是datareader+泛型 这样比较方便 性能也很好 而且很灵活 推荐LZ使用
2
select s.Student_id as 学号,g.Student_name as 姓名 ,j.Course_name as 课程,s.Grade as 成绩,s.SC_semester as 学期,s.SC_year as 学年from Student_course as s,course j , Student g "+
"where  s.Course_id=j.Course_id and  g.Student_id=s.Student_id
LZ的这段sql语句可以写一个视图
例如
程序代码:
create view tb_view as (
select s.Student_id as 学号,g.Student_name as 姓名 ,j.Course_name as 课程,s.Grade as 成绩,s.SC_semester as 学期,s.SC_year as 学年from Student_course as s,course j , Student g "+
"where  s.Course_id=j.Course_id and  g.Student_id=s.Student_id )
然后绑定表名的时候 写视图名就可以了

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-12-25 14:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-329848-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.061120 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved