![]() |
#2
xcfafeng2014-05-09 21:25
|
按照教材做一个管理系统,中间有问题请教大家。
其中制作了一个“输入学生成绩”的窗体,窗体里有4个表
DataGridView形态的“成绩表”
ComboBox形态的“班级表”和“科目表(学科框)”
“学生基本情况表”
只有本站会员才能查看附件,请 登录
要求用FillByToolStrip类对象完成关联查询。右击数据环境中的“成绩表TableAdapter” 对象,“添加查询”,在“生成查询器”窗口的select语句后面加入Where子句:where 班级编号=@bh and 科目编号=@km (教材用的是SQL,我自己用的Access。将语句改成了:where 班级编号=[bh] and 科目编号=[km] ),生成的“FillByToolStrip”导航条设为不可见。
对“学生基本信息表TableAdapter”生成查询对象“FillByToolStrip1”,Where语句为:where 班级=@bh (我Access改成:where 班级=[bh] )
只有本站会员才能查看附件,请 登录
编写代码:
(a) 定义窗体级变量:Dim n As Integer。
(b) 班级表ComboBox_SelectedIndexChanged 事件过程代码为:

Try
'下面2行代码有错
Me.成绩表TableAdapter.FillBy(Me.学生信息管理DataSet.成绩表, Me.班级表ComboBox.SelectedValue, Me.科目表ComboBox.SelectedValue)
Me.学生基本信息表TableAdapter.FillBy(Me.学生信息管理DataSet.学生基本信息表, Me.班级表ComboBox.SelectedValue)
n = Me.学生信息管理DataSet.成绩表.Count
If n < Me.学生信息管理DataSet.学生基本信息表.Count Then
TextBox1.Text = Me.学生信息管理DataSet.学生基本信息表(n).姓名
TextBox2.Text = 0
Button1.Enabled = True
Else
MsgBox("该班级本门学科成绩输入完毕!")
Button1.Enabled = False
End If
Catch
End Try
(c) 科目表ComboBox_SelectedIndexChanged 事件过程代码为:

班级表ComboBox_SelectedIndexChanged(sender, e)
(d) 存入按钮Button1_Click 事件过程代码为:

'下面1行代码有错
Me.学生信息管理DataSet.成绩表.Add成绩表Row(Me.学生信息管理DataSet.学生基本信息表(n).学号, Me.科目表ComboBox.SelectedValue, TextBox2.Text, Me.班级表ComboBox.Text, Me.班级表ComboBox.SelectedValue)
Me.Validate()
Me.成绩表BindingSource.EndEdit()
Me.成绩表TableAdapter.Update(Me.学生信息管理DataSet.成绩表)
n += 1
If n < Me.学生信息管理DataSet.学生基本信息表.Count Then
TextBox1.Text = Me.学生信息管理DataSet.学生基本信息表(n).姓名
TextBox2.Text = 0
Else
MsgBox("该班级本门学科成绩输入完毕!")
Button1.Enabled = False
End If
(e) 窗体的 输入学生成绩_Load 事件过程代码为:

Me.学生基本信息表TableAdapter.Fill(Me.学生信息管理DataSet.学生基本信息表)
Me.科目表TableAdapter.Fill(Me.学生信息管理DataSet.科目表)
Me.班级表TableAdapter.Fill(Me.学生信息管理DataSet.班级表)
Me.成绩表TableAdapter.Fill(Me.学生信息管理DataSet.成绩表)
Me.班级表ComboBox.SelectedIndex = 0
Me.科目表ComboBox.SelectedIndex = 0
班级表ComboBox_SelectedIndexChanged(sender, e)
只有本站会员才能查看附件,请 登录
现在有3句错误代码。请大家看一下。
根据SQL数据库的实验指导做的,请大家帮帮忙。
[ 本帖最后由 xcfafeng 于 2014-5-10 20:17 编辑 ]