2024/5/24

1. 准备工作

确保你的开发环境已经安装了Visual Basic 6.0和必要的数据库驱动,比如MDAC(Microsoft Data Access Components)用于ADO操作。

2. 创建VB工程

  • 启动VB6.0,新建一个标准EXE工程。
  • 从工具箱中拖放以下控件至窗体:
    • 两个ADO Data控件(ADO Data Control),命名为adoSC和adoCourse。
    • 一个DataGridView控件(若VB6原生不支持直接拖放DataGridView,可以使用DataGrid控件代替)。
    • 一个ListBox控件,用于显示课程名。
    • 两个CommandButton控件,分别命名为btnHideColumn和btnShowAllColumns,用于控制列的显示。

3. ADO控件配置

  • 连接到数据库:在adoSC和adoCourse的属性窗口中设置ConnectionString属性,例如:

    Vb
    1adoSC.ConnectionString = "Provider=SQLOLEDB;Data Source=<yourServer>;Initial Catalog=students;Integrated Security=SSPI;"
    2adoCourse.ConnectionString = "..."  // 类似设置,但连接到course表
  • 记录源:设置RecordSource属性为对应的表名,如adoSC.RecordSource = "SC"。

4. DataGridView显示数据

  • 将adoSC控件的Recordset绑定到DataGridView:

    Vb
    1Set DataGridView.DataSource = adoSC.Recordset
  • 为了按课程号和学期排序,可以在ADO的SQL属性中设置ORDER BY子句,或者在VB代码中执行排序逻辑。

5. 按钮事件处理

  • 隐藏/显示列:通过遍历DataGridView.Columns集合,改变其Visible属性。

    Vb
    解释
     
     
    1Private Sub btnHideColumn_Click()
    2    DataGridView.Columns("Semester").Visible = False
    3End Sub
    4
    5Private Sub btnShowAllColumns_Click()
    6    For Each col In DataGridView.Columns
    7        col.Visible = True
    8    Next col
    9End Sub
  • DataList根据选中课程显示课程名:监听DataGridView的SelectionChange事件,获取选中的课程号,然后在adoCourse中执行查询,最后填充ListBox。

    Vb
    解释
     
     
    1Private Sub DataGridView_SelectionChange()
    2    Dim selectedCno As String = DataGridView.Columns("Cno").Value
    3    adoCourse.RecordSource = "SELECT Cname FROM Course WHERE Cno='" & selectedCno & "'"
    4    ListBox.RowSource = adoCourse.Recordset
    5End Sub

6. 上机练习(P240页)

请参考课本具体要求,结合以上指导和VB的数据库操作基础,实现相应的功能。例如,添加数据可以使用ADO的AddNew方法,修改和删除则通过Recordset的Edit和Delete方法。

注意

  • 实际操作时,请根据你的数据库连接字符串和具体需求调整代码。
  • 由于VB6.0年代较为久远,截图和代码样例可能需要适应现代Windows环境的小调整。
  • 如果使用其他编程工具(如.NET Framework或.NET Core),数据库访问逻辑将有所不同,主要使用ADO.NET或其他ORM框架(如Entity Framework或Dapper)。

完成实验后,确保在实验报告中详细记录每一步骤,包括截图和关键代码片段,以便清晰展示你的实现过程。

 
 
 
 
 
posted @ 2024-06-16 16:15  几条小鱼  阅读(24)  评论(0)    收藏  举报