发新话题
打印

跪求VB.net+Acess解決方案

跪求VB.net+Acess解決方案

用VB.net 2005+Acess 编程  其中Mas.mdb 里有StuTable 和 TecTable两个表 其中都有的第一和第二个字段字段分别是ID和Name
而我要列出两个表里所有Name,但是发现StuTable的重复列出了两次 而TecTable却没有列出
代码如下


Public MyCnn As ADODB.Connection
Public MyRs As ADODB.Recordset

MyCnn = New ADODB.Connection
MyRs = New ADODB.Recordset

strCnn = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=.\mas.mdb"
MyCnn.Open(strCnn)
MyRs.Open("select * from Tectable,StuTable", MyCnn, ADODB.CursorTypeEnum.adOpenKeyset, ADODB.LockTypeEnum.adLockOptimistic)

MyRs.MoveFrist()
For i = 0 To MyRs.RecordCount - 1
        Me.ListName.Items.Add(MyRs.Fields(2).Value.ToString)
        MyRs.MoveNext()
Next

其中ListName是ListBox控件

麻烦各位大虾拉~~~~~

[ 本帖最后由 crenel 于 2006-7-13 18:19 编辑 ]

TOP

MyRs.Open("select * from Tectable,StuTable", MyCnn, ADODB.CursorTypeEnum.adOpenKeyset, ADODB.LockTypeEnum.adLockOptimistic)

这句有错误
SQL语句不是这样写的
第一,两个表之间必需有关联,要不就乱了,比如StuTable增加一个Pid与TecTable的ID对应。
第二,如果出现两个表之后,就不用*了,应当写出表的字段名

例如下面
select a.name as aname,b.name as bname from Tectable a, StuTable b where a.id=b.pid

TOP

谢谢阿

但是这两个表是相对独立的 还有一个表loginTable里面的Id字段就分别对应这两个表
而TecTable和StuTable两个表是分别存放老师和学生的资料 里面的ID不是对应的

TOP

应该说是logintable里面ID字段囊括了TecTable和StuTable里面的所有的ID      但是不存在name字段
我想在登陆之后 列出TecTable和StuTable里面所有name的内容 然后也把这两个表的内容放在同一个记录集里面 方便以后的处理

TOP

如果两个表没有关联的话,统计查询肯定有问题,设过关联ID比较好。
便看你的意思,最好使用两次查询,没有必要非绑到一个查询结果里面。
另外多表查询很耗费CPU和内存资源。

TOP

恩~
好的

谢谢啊

TOP

发新话题