首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

关于数据库的综合有关问题

2011-12-24 
关于数据库的综合问题有两个数据表,table1是这样的idname1题组一2题组二3题组三……table2是这样的idname1题

关于数据库的综合问题
有两个数据表,table1是这样的
id name
1 题组一
2 题组二
3 题组三
… …

table2是这样的
id name
1 题组一例一
2 题组一例二
3 题组二例一
4 题组二例二
5 题组三例一
6 题组三例二
… …

现在我想创建2个form form1用label控件显示table1里的name列,点击label显示form2,form2里面也用label显示的对应table1的table2的name列。比如点击的是题组一,form2显示的就是题组一例一和题组一例二。

小弟现在写好form1了,就是不知道如何在form2里面显示对应的tabel2的name列。请高手指点迷津,最好能给点代码参考。谢谢。

VB.NET code
  Dim conn As OleDbConnection        Dim strconn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Math.mdb"        Dim cmd As OleDb.OleDbCommand = New OleDb.OleDbCommand        cmd.CommandText = "select name from table1"        Dim myread As OleDbDataReader        conn = New OleDbConnection(strconn)        cmd.Connection = (conn)        Try            conn.Open()            myread = cmd.ExecuteReader            While myread.Read                Dim lab As New Label                Dim lines As String                lines = myread.GetString(0)                lab.Text = lines                lab.Name = i                lab.Location = New Point(x, y)                lab.AutoSize = True                lab.Cursor = Cursors.Hand                AddHandler lab.Click, AddressOf labClick                Me.Controls.Add(lab)                i += 1                y += 50                If y = 550 Then                    x = 450                    y = 50                End If            End While        Catch ex As Exception        Finally            conn.Close()        End Try



[解决办法]
先要把name从Form1传到Form2,可以这样处理
 
Private Sub labClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
Me.Tag = CType(sender, Label).Text
Dim frm As New Form2
frm.Show()
End Sub

Form2中也像Form1中一样执行SQL语句就行了
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
MsgBox(Form1.Tag)
'执行 Select * from table2 where name = form1.tag
End Sub
[解决办法]
修改两个数据表,table1是这样的 
id name 
1 题组一 
2 题组二 
3 题组三 
… … 

table2是这样的 
id pid name 
1 1 例一 
2 1 例二 
3 2 例一 
4 2 例二 
5 3 例一 
6 3 例二 


Private Sub labClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click 
Me.Tag = CType(sender, Label).id
Dim frm As New Form2 
frm.id=me.tag
 
frm.Show() 
End Sub 

Form2中也像Form1中一样执行SQL语句就行了 

public share id as integer

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) 

sql="select * from table2 where pid="&id

dim da as new oledb.olednadapter(sql,cntdb)

dim ds as dataset

da.fill (ds,"table2")
  
do while i <ds.tables(0).rows.count

'add lable control

'set lable.text=ds.table(0).rows(i).item("name")

'set lable.position or format

i=i+1

loop
 






end sub



热点排行