Masta Pee Ответов: 1

Как заполнить текстовое поле в winforms с помощью access database in VB.NET при изменении выбора combobox


я новичок в этом деле. vb.net и я пытаюсь заполнить текстовые поля в моей winform данными из базы данных access о выборе значения в combobox. но это ошибка, которую я получаю.
нет значения для одного или нескольких обязательных параметров.

Что я уже пробовал:

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 allowances,basicsalary,cashbenefits,vehiclefueldriver,vehiclefuel,fuelonly,vehicleonly," &
                    "accomodationfurnishing,accomodationonly,furnishingonly,sharedaccomodation,marriageresponsibilities,disabled," &
                    "oldage,tier3contribution,lifeinsurance,childeducation,agedependency,trainingcost,ssn,NoOfDependants,nochildren," &
                    "BankName,AccountName,BankBranch,AccountNo," &
                    "from employeeregistration where employeename = ?"
            cmd = New OleDbCommand(ct)
            cmd.Connection = con
            cmd.Parameters.Add(New OleDbParameter("employeename", OleDbType.VarChar, 30))
            cmd.Parameters("employeename").Value = Trim(employeenamecmbbx.Text)
            Console.WriteLine("sql:" & cmd.CommandText)
            rdr = cmd.ExecuteReader()

            If rdr.Read Then
                Allowances.Text = Trim(rdr.GetValue(0).ToString())
                BasicSalary.Text = Trim(rdr.GetString(1))
                CashBenefits.Text = Trim(rdr.GetValue(2).ToString())
                vfd.Text = Trim(rdr.GetValue(2).ToString())
                vf.Text = Trim(rdr.GetValue(3).ToString())
                vonl.Text = Trim(rdr.GetValue(4).ToString())
                feun.Text = Trim(rdr.GetValue(5).ToString())
                accwf.Text = Trim(rdr.GetValue(6).ToString())
                accon.Text = Trim(rdr.GetValue(7).ToString())
                furon.Text = Trim(rdr.GetValue(8).ToString())
                shracc.Text = Trim(rdr.GetValue(9).ToString())
                maresp.Text = Trim(rdr.GetValue(10).ToString())
                disbl.Text = Trim(rdr.GetValue(11).ToString())
                olda.Text = Trim(rdr.GetValue(12).ToString())
                t3c.Text = Trim(rdr.GetValue(13).ToString())
                lifins.Text = Trim(rdr.GetValue(14).ToString())
                chedu.Text = Trim(rdr.GetValue(15).ToString())
                agdep.Text = Trim(rdr.GetValue(16).ToString())
                trncst.Text = Trim(rdr.GetValue(17).ToString())
                ssno.Text = Trim(rdr.GetValue(18).ToString())
                Nodependents.Text = Trim(rdr.GetValue(19).ToString())
                NoChildren.Text = Trim(rdr.GetValue(20).ToString())
                bntnmtxbx.Text = Trim(rdr.GetValue(21).ToString())
                actntxbx.Text = Trim(rdr.GetValue(22).ToString())
                brncnamtxbx.Text = Trim(rdr.GetValue(23).ToString())
                accnmtxbx.Text = Trim(rdr.GetValue(24).ToString())
            End If
            If Not rdr Is Nothing Then
                rdr.Close()
            End If

Richard MacCutchan

Я не думаю, что между ними должна быть запятая. AccountNo и from в вашей инструкции Select. Кроме того, вероятно, было бы проще просто сказать Select * from ....

1 Ответов

Рейтинг:
8

F-ES Sitecore

Всякий раз, когда вы получаете ошибку, всегда говорите, на какой линии она находится. Предполагая, что ошибка возникает при выполнении SQL, необходимо проверить следующие вещи

Trim(employeenamecmbbx.Text)


убедитесь, что "employeenamecmbbx.Text" возвращает то, что вы ожидаете.

Затем пройдите через все поля в вашем выборе (надбавки, basicsalary и т. д.) и убедитесь, что все они существуют в таблице employeeregistration и что нет никаких орфографических ошибок.

Кроме того, у вас есть дополнительная запятая здесь

"BankName,AccountName,BankBranch,AccountNo," &


измените это на

"BankName,AccountName,BankBranch,AccountNo " &


Masta Pee

большое вам спасибо ... я все это проверил, но все равно ничего не работает.
можете ли вы прислать мне простой пример кода для просмотра

Masta Pee

ошибка происходит в этой строке
rdr = cmd.Метода executereader()

Er.Muneer Khan

вы уже определились РДР объекта DataReader, вы положили РДР, но где объект, отличное качество изображения