Private Sub BindExam()
...
End SubPrivate Sub BindGrade()
...
End Sub Private Sub drpExam_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles drpExam.SelectedIndexChanged
BindGrade()
End Sub
...
End SubPrivate Sub BindGrade()
...
End Sub Private Sub drpExam_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles drpExam.SelectedIndexChanged
BindGrade()
End Sub
是根据省的selectvalue来确定的
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
If Not IsPostBack Then
Me.SqlDataAdapter1.Fill(Me.DsDept1)
Me.DataBind()
End If
End Sub Private Sub cboDept_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboDept.SelectedIndexChanged
Dim cmd As New SqlCommand(" SELECT Name From Employee Where Dept=@Dept", Me.SqlConnection1) cmd.Parameters.Add("@Dept", System.Data.SqlDbType.NVarChar, 10)
cmd.Parameters("@Dept").Value = cboDept.Items(cboDept.SelectedIndex).Text SqlConnection1.Open()
Dim dr As SqlDataReader = cmd.ExecuteReader()
cboStaff.Items.Clear()
While dr.Read
cboStaff.Items.Add(dr(0).ToString())
End While
If SqlConnection1.State <> ConnectionState.Closed Then SqlConnection1.Close()
End Sub其中有几个需要注意的地方:1. Page_Load里面一定要增加 If Not IsPostback,否则每次CboDept里面的SelectIndex都是指向第一行。因为DropDownList已经被重新填充了。
2.我在
cmd.Parameters("@Dept").Value = cboDept.Items(cboDept.SelectedIndex).Text
中遇到这样一个错误,写代码的时候写成了这样
cmd.Parameters("@Dept").Value = cboDept.Items(cboDept.SelectedIndex) '后面没有Text了。出现的错误是: 对象必须实现IConvetable。
希望成为前车之鉴,大家不要再犯同样的错误。