读书人

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

发布时间: 2011-12-24 23:03:24 作者: rapoo

关于数据库的综合问题
有两个数据表,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



读书人网 >VB Dotnet

热点推荐