VB SQL 查询语句的问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 06:26:04
简单说明一下我的问题:
SQL中我有三个表:S(学生表),SC(选修课成绩表),C(选修课表)
VB中其他的我就不说了,我的问题是
VB中的一个TEXT1中是表S中的SNAME,我想在TEXT2中显示CNAME
但他们不在同一个表中,在SQL中的话我会显示
SELECT CNAME FROM C
WHERE S.NUM=SC.NUM AND SC.CNUM=C.CNUM AND SNAME="李明"
就是说三个表中,是由外键连接的,具体想实现VB中的问题,请大家帮下忙
真不好意思,写的有点乱了,我在这写的只是举个例子,和我VB中写的不一样,两个弄混了,现在我就全面说一下好了

数据库结构,我用的是SQL

表S (SNUM,SNAME,SSEX,SAGE,SPHONE)
表C (CNUM,CNAME,CFREQ)
表SC (SNUM,CNUM,SCORE)

VB中,我用一个Adodc1连接表S 语句是:SELECT * FROM S
再用几个TEXT显示S表中的各项,再放了几个Command,实现”上一条”,”下一条”的查看,除了S表中的5个外,我还想加一个CNAME,就是说工在按”上一条”,”下一条”的同时,CNAME也一样正确的关联显示,我就加了一个Adodc2连接表C,语句:SELECT CNAME FROM C,SC,S
WHERE S.SNUM=SC.SNUM AND SC.CNUM=C.CNUM AND S.SNUM='"& TEXT1.TEXT &"' (TEXT1是表S中的SNUM),然后放一个TEXT6,TEXT6中的datasource写adodc2,datafield中就写CNAME,但问题就在这,它显示不了!

我在加了个Adodc3,里面写SELECT SNAME FROM S
WHERE S.SNUM='"& TEXT1.TEXT &"' 加个TEXT7,连接到Adodc3,也是显示不了,
后来我就加了一个Da

不能显示有两种情况:
1。程序有错误
2。程序没错,但查询到的数据集合为空
对于第2点又有2种情况:
a.SQL语句不对
b.SQL正确,数据库里的数据不满足条件

在多表查询时最好给所有字段都加上表名限制,减少出错的可能性

可以先测试一下SQL语句
SQL SERVER在查询分析器里执行语句
ACCESS的话新建一个查询,在SQL视图中执行语句

照你前面所说,应该是Text1.Text = S.SNAME,可是你后面有些sql中又有WHERE S.SNUM='"& TEXT1.TEXT &"'跟WHERE SNAME='"& TEXT1.TEXT &"',我都不知道到底是哪个字段对应Text1.Text了。如果可以,把数据库结构贴出来看一下

我根据推测写了一个,你看看行不行
SELECT C.CName FROM C,SC,S
WHERE S.Snum=SC.Snum AND SC.Cnum=C.Cnum AND S.SName='" & Text1.Text & "' //“&”号两边都有空格
我说的表明限制就是指 表名.字段名 这种写法,当数据库很大内容很多的时候,难免会有多个表拥有相同的字段名,当多表查询时这样可以减少一些错误

我猜你应该用的是Access吧,SQL Server的话字符串要用单引号而不是双引号
你可以先在数据库测试sql语句,把S.SName='" & Text1.Text & "'换成S.SName="具体值"
没错后再放到程序里,如果还是有问题,设下断点跟踪调试

由于已达到最大修改次数,所以换了个号进来
上面有一点可能说的不对,Access好像单引号,双引号都可以,sql server应该是只能用单引号
还有上面的没写完整
"SELECT C.CName FROM C,SC,S