crenel 2006-7-13 18:16
跪求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控件
麻烦各位大虾拉~~~~~
[[i] 本帖最后由 crenel 于 2006-7-13 18:19 编辑 [/i]]
Nothing 2006-7-13 20:01
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
crenel 2006-7-13 21:43
谢谢阿
但是这两个表是相对独立的 还有一个表loginTable里面的Id字段就分别对应这两个表
而TecTable和StuTable两个表是分别存放老师和学生的资料 里面的ID不是对应的
crenel 2006-7-13 21:48
应该说是logintable里面ID字段囊括了TecTable和StuTable里面的所有的ID 但是不存在name字段
我想在登陆之后 列出TecTable和StuTable里面所有name的内容 然后也把这两个表的内容放在同一个记录集里面 方便以后的处理
Nothing 2006-7-13 22:28
如果两个表没有关联的话,统计查询肯定有问题,设过关联ID比较好。
便看你的意思,最好使用两次查询,没有必要非绑到一个查询结果里面。
另外多表查询很耗费CPU和内存资源。