Vb.net 如何使用vb中数据库中的组合框选择填充文本框和复选框
当我在“员工”组合框中选择员工姓名时,我想查看工资单表单中的文本框和其他复选框,以从员工注册数据库中获取数据。请了解我如何做到这一点。下面是我尝试过的,但它不起作用Vb.net 如何使用vb中数据库中的组合框选择填充文本框和复选框,vb.net,Vb.net,当我在“员工”组合框中选择员工姓名时,我想查看工资单表单中的文本框和其他复选框,以从员工注册数据库中获取数据。请了解我如何做到这一点。下面是我尝试过的,但它不起作用 Private Sub employeenamecmbbx_SelectedIndexChanged(sender As Object, e As EventArgs) Handles employeenamecmbbx.SelectedIndexChanged Try con = New OleDbConn
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
这是我所做的,但是当我尝试什么都不发生时,我认为在尝试读取之前,首先需要检查rdr.hasRows()是否出现问题。这可能会导致发生异常
您是否收到错误消息,或者只是没有在复选框和文本框中输入任何内容?我收到一条错误消息,表示一个或多个参数没有给定值。在这种情况下,
employeenamecmbbx.Text
字段中没有任何内容时,可能会发生这种情况。在尝试检索数据之前,我会进行检查以确保其中有内容。谢谢,现在我已经完成了检查,但问题是现在显示“指定的强制转换无效”,这是下面的代码。您可以告诉我问题是什么吗?我想您从Vehicle\u Fuel\u DriverCheckBox.Checked=Trim(rdr.GetString(3))获得强制转换错误)
所有不能直接从字符串转换为布尔值的复选框字段。您需要将它们包装在一个CBool()
中,即Vehicle\u Fuel\u DriverCheckBox.Checked=CBool(Trim(rdr.GetString(3))
,只要有东西就可以工作,或者创建一个函数,为从数据库返回的数据返回正确的布尔值。