sqlserver05

VB 数据库应用编程练习
(1)开始→程序→Microsoft Visual Studio→Visual Basic 6.0。
(2)建立一个 vb 工程,设计用户界面。要求包含一个窗体,在窗体上添加两个
ADO 数据控件、一个 datagrid 控件、一个 DataList 控件,和两个命令按钮,(可
参考教材图 14-22)。
(3)设置 ADO 控件的有关属性,一个连接到 studenst 数据库的选课 sc 表,一个连
接到课程表 course;
(4)用 DataGrid 控件显示 sc 表中的数据,并且运行用户可以按“课程号”和“学
期”的升序形式显示数据;
(5)两个按钮分别为“隐藏列”和“显示全部列”,当用户单击“隐藏列”按钮时,
隐藏结果集中的学期列;当用户单击显示全部列时,显示结果集中的全部列。
(6)根据 SC 表中当前显示的课程号的值,在 DataList 列表中相应的选中的此课程
号对应的课程名。

 

 

步骤 1:启动 Visual Basic 6.0

  1. 打开 Visual Basic 6.0。
  2. 选择“标准 EXE”项目。

步骤 2:设计用户界面

  1. 在“工具箱”中,拖动一个“Form”到你的工程中。
  2. 在窗体上添加以下控件:
    • 两个 ADO 数据控件(ADODC1ADODC2)。
    • 一个 DataGrid 控件(DataGrid1)。
    • 一个 DataList 控件(DataList1)。
    • 两个命令按钮(Command1Command2)。

步骤 3:设置 ADO 控件属性

  1. 选择 ADODC1 控件,设置以下属性:

    • ConnectionString: 设置为连接到你的 students 数据库。
    • RecordSource: 设置为 SELECT * FROM sc,即选择 sc 表中的所有数据。
  2. 选择 ADODC2 控件,设置以下属性:

    • ConnectionString: 设置为连接到你的 students 数据库。
    • RecordSource: 设置为 SELECT * FROM course,即选择 course 表中的所有数据。

步骤 4:配置 DataGrid 控件显示 sc 表数据

  1. 选择 DataGrid1 控件,设置以下属性:
    • DataSource: 设置为 ADODC1,即绑定到 ADODC1 控件的数据源。

步骤 5:添加代码实现排序功能

  1. Form 的代码窗口中,添加以下代码以实现按课程号和学期升序排序显示数据:
    Private Sub Form_Load()
        ' Set the initial sort order for DataGrid
        ADODC1.RecordSource = "SELECT * FROM sc ORDER BY cno, semester"
        ADODC1.Refresh
    End Sub

     

步骤 6:设置按钮功能实现列显示控制

  1. 双击 Command1 按钮,添加以下代码以隐藏“学期”列:

    Private Sub Command1_Click()
        DataGrid1.Columns(2).Visible = False '假设“学期”列是第三列
    End Sub

     

  2. 双击 Command2 按钮,添加以下代码以显示所有列:

    Private Sub Command2_Click()
        Dim i As Integer
        For i = 0 To DataGrid1.Columns.Count - 1
            DataGrid1.Columns(i).Visible = True
        Next i
    End Sub

     

步骤 7:在 DataList 中显示课程名称

  1. 选择 DataList1 控件,设置以下属性:

    • RowSource: 设置为 ADODC2,即绑定到 ADODC2 控件的数据源。
    • ListField: 设置为 cname,即显示 course 表中的课程名称。
    • BoundColumn: 设置为 cno,即绑定 course 表中的课程号。
  2. DataGrid1AfterColUpdate 事件中添加代码,以根据当前显示的课程号更新 DataList1 的选中项:

     
    Private Sub DataGrid1_AfterColUpdate(ByVal ColIndex As Integer)
        Dim currentCno As String
        currentCno = DataGrid1.Columns(0).Text '假设“课程号”列是第一列
        ADODC2.Recordset.Find "cno='" & currentCno & "'"
        If Not ADODC2.Recordset.EOF Then
            DataList1.BoundText = currentCno
        End If
    End Sub

     

步骤 8:保存和运行项目

  1. 保存你的 VB 工程文件。
  2. 运行你的工程,测试各个功能是否正常工作。

代码汇总

Private Sub Form_Load()
    ' Set the initial sort order for DataGrid
    ADODC1.ConnectionString = "Your Connection String Here"
    ADODC1.RecordSource = "SELECT * FROM sc ORDER BY cno, semester"
    ADODC1.Refresh

    ADODC2.ConnectionString = "Your Connection String Here"
    ADODC2.RecordSource = "SELECT * FROM course"
    ADODC2.Refresh

    DataGrid1.DataSource = ADODC1
    DataList1.RowSource = ADODC2
    DataList1.ListField = "cname"
    DataList1.BoundColumn = "cno"
End Sub

Private Sub Command1_Click()
    DataGrid1.Columns(2).Visible = False '假设“学期”列是第三列
End Sub

Private Sub Command2_Click()
    Dim i As Integer
    For i = 0 To DataGrid1.Columns.Count - 1
        DataGrid1.Columns(i).Visible = True
    Next i
End Sub

Private Sub DataGrid1_AfterColUpdate(ByVal ColIndex As Integer)
    Dim currentCno As String
    currentCno = DataGrid1.Columns(0).Text '假设“课程号”列是第一列
    ADODC2.Recordset.Find "cno='" & currentCno & "'"
    If Not ADODC2.Recordset.EOF Then
        DataList1.BoundText = currentCno
    End If
End Sub

 

posted @ 2024-05-18 00:12  艾鑫4646  阅读(17)  评论(0编辑  收藏  举报