在线求解关于视图的解决问题,附代码和图

来源:互联网 发布:excel数据生成折线图 编辑:程序博客网 时间:2024/05/17 04:42
 

 '对ds的设置
        Dim sql1 = "select  * from curriculum "
        Dim sql2 = "select *  from student"
        Dim sql3 = "select * from elective "
        Dim conString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Administrator\桌面\db1.mdb"
        Dim oleDbConnection As OleDbConnection = New OleDbConnection(conString)
        Dim student As DataSet = New DataSet()
        Dim dap As OleDbDataAdapter = New OleDbDataAdapter(sql1, oleDbConnection)
        Dim dap2 As OleDbDataAdapter = New OleDbDataAdapter(sql2, oleDbConnection)
        Dim dap3 As OleDbDataAdapter = New OleDbDataAdapter(sql3, oleDbConnection)
        oleDbConnection.Open()
        dap.Fill(student, "student")
        dap2.Fill(student, "eletive")
        dap3.Fill(student, "curriculum")
        oleDbConnection.Close()

        '视图操作
        Dim st As DataRelation = student.Relations.Add("student", _
        student.Tables("student").Columns("stuNo"), _
        student.Tables("elective").Columns("stuNo"), False)
        Dim ec As DataRelation = student.Relations.Add("elective", _
        student.Tables("elective").Columns("curriculum_id"), _
        student.Tables("curriculum").Columns("curridculum_id"), False)
        student.Relations.Add(st)
        student.Relations.Add(ec)

        'lv列添加
        Me.ListView1.Columns.Add("stuNo")
        Me.ListView1.Columns.Add("stuName")
        Me.ListView1.Columns.Add("curriculum_id")
        Me.ListView1.Columns.Add("cur_Name")
        Dim exRow, studentRow1, cuRow As DataRow
        Dim lsv As New ListViewItem

        '读取父表student中每一行
        For Each studentRow1 In student.Tables("student").Rows
            lsv.Text = studentRow1("stuNo")
            '将student中 的当前的stuNo字段值添加为listView控件的项
            For Each exRow In studentRow1.GetChildRows(st)
                '扫描字表elective表中的每一行
                lsv.SubItems.Add(exRow.GetParentRow(st)("stuName"))
                lsv.SubItems.Add(exRow("curriculum_id"))
                '扫描elective子表的每一行
                For Each cuRow In exRow.GetChildRows(ec)
                    lsv.SubItems.Add(cuRow("cur_Name"))
                Next
            Next
            Me.ListView1.Items.Add(lsv)
            lsv = New ListViewItem()
        Next

下面是编译时的截图

 

哪位好心人帮我看看呢

原创粉丝点击