如何在vb中从其他数据库中选择使用Combobox选项填充文本框和复选框

时间:2015-10-15 14:49:51

标签: vb.net

当我在员工组合框中选择员工姓名时,我想要工资表单中的文本框和其他复选框从员工注册数据库中获取数据,请知道我该如何做到这一点。以下是我尝试过的但它不起作用.........

Private Sub employeenamecmbbx_SelectedIndexChanged(sender As Object, e As EventArgs) Handles employeenamecmbbx.SelectedIndexChanged
    Try
        con = New OleDbConnection(cs)
        con.Open()
        Dim ct As String = "select employeename,basicsalary,cashbenefits,allowances,vehiclefueldriver,vehiclefuel,vehicleonly,fuelonly,accomodationwithfurnishing  m ,accomodationonly,sharedaccomodation from employeeregistration where employeename=@find"

        cmd = New OleDbCommand(ct)
        cmd.Connection = con
        cmd.Parameters.Add(New OleDbParameter("@find", OleDbType.VarChar, 30, "employeename"))
        cmd.Parameters("@find").Value = Trim(employeenamecmbbx.Text)
        rdr = cmd.ExecuteReader()
        If rdr.Read Then
            Allowances.Text = Trim(rdr.GetString(0))
            BasicSalary.Text = Trim(rdr.GetInt32(1))
            CashBenefits.Text = Trim(rdr.GetString(2))
            Vehicle_Fuel_DriverCheckBox.Checked = Trim(rdr.GetString(3))
            Vehicle_FuelCheckBox.CheckState = Trim(rdr.GetString(4))
            VehicleOnlyCheckBox.CheckState = Trim(rdr.GetString(5))
            FuelOnlyCheckBox.CheckState = Trim(rdr.GetString(6))
            AccomodationOnlyCheckBox.CheckState = Trim(rdr.GetString(7))
            AccomodationWithFurnishingCheckBox.CheckState = Trim(rdr.GetString(8))
            Shared_AccomodationCheckBox.CheckState = Trim(rdr.GetString(9))
            MarriageReponsibilityCheckBox.CheckState = Trim(rdr.GetString(10))
            DisabledCheckBox.CheckState = Trim(rdr.GetString(11))
            OldAgeCheckBox.CheckState = Trim(rdr.GetString(12))
            ChildEducationCheckBox.CheckState = Trim(rdr.GetString(13))
            AgeDependantCheckBox.CheckState = Trim(rdr.GetString(14))
            TrainingCostCheckBox.CheckState = Trim(rdr.GetString(15))
            Tier3ContributionCheckBox.CheckState = Trim(rdr.GetString(16))

        End If
    Catch ex As Exception
        MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
    End Try

    If Not rdr Is Nothing Then
        rdr.Close()
    End If
End Sub

这是我做过的,但是当我尝试没有任何事情发生时

1 个答案:

答案 0 :(得分:0)

我认为首先你需要检查rdr.hasRows()之前是否尝试阅读它们。这可能会导致异常发生。

您是收到错误消息还是只是没有在复选框和文本框中添加任何内容?