当我在员工组合框中选择员工姓名时,我想要工资表单中的文本框和其他复选框从员工注册数据库中获取数据,请知道我该如何做到这一点。以下是我尝试过的但它不起作用.........
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
这是我做过的,但是当我尝试没有任何事情发生时
答案 0 :(得分:0)
我认为首先你需要检查rdr.hasRows()
之前是否尝试阅读它们。这可能会导致异常发生。
您是收到错误消息还是只是没有在复选框和文本框中添加任何内容?