Почему я получаю эту ошибку? Преобразование из строки «Счет-фактура» в тип «Integer» недопустимо - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь получить данные из БД, используя datatable, а затем передать их в мое текстовое поле. Вот мои коды. Ошибка происходит из моей первой строки me.txtInvoice.text.

    Try
        dtTable = MyBase.appMgr.fncTransactionSuccessful_Sel("1", strErrMsg)
        If strErrMsg = String.Empty Then
            If dtTable.Rows.Count > 0 Then
                Me.txtInvoiceNo.Text = dtTable("Invoice").ToString
                Me.txtAmountPaid.Text = "RM " & dtTable("Amount").ToString
                Me.txtPaymentDate.Text = dtTable("PaymentDate").ToString
                Me.txtPackageSelected.Text = dtTable("PackageSelected").ToString
                Me.txtPackageStartDate.Text = dtTable("PackageStartDate").ToString
                Me.txtPackageEndDate.Text = dtTable("PackageEndDate").ToString
            End If
    <div class="form-group col-lg-6 col-md-12 col-sm-6" style="margin-bottom: 0px; margin-top: 17px">
      <asp:TextBox ID="txtInvoiceNo" runat="server" Text="123466" CssClass="form-control"></asp:TextBox>
      </div>

1 Ответ

0 голосов
/ 24 марта 2020

Возможно, вы хотели это сделать:

    dtTable = MyBase.appMgr.fncTransactionSuccessful_Sel("1", strErrMsg)
    If strErrMsg = String.Empty Then
        If dtTable.Rows.Count > 0 Then

            Dim ro = dtTable(0) 'get the first row out of the table

            Me.txtInvoiceNo.Text = ro("Invoice").ToString
            Me.txtAmountPaid.Text = "RM " & ro("Amount").ToString
            Me.txtPaymentDate.Text = ro("PaymentDate").ToString
            Me.txtPackageSelected.Text = ro("PackageSelected").ToString
            Me.txtPackageStartDate.Text = ro("PackageStartDate").ToString
            Me.txtPackageEndDate.Text = ro("PackageEndDate").ToString
        End If

Если вы используете строго типизированные наборы данных, это облегчит вашу жизнь. Для строго типизированной таблицы этот код может выглядеть следующим образом:

    dtTable = MyBase.appMgr.fncTransactionSuccessful_Sel("1", strErrMsg)
    If strErrMsg <> String.Empty Then 
        'do something here
        Return
    End If

    If dtTable.Count > 0 Then
        Dim ro = dtTable(0) 'get the first row out of the table

        Me.txtInvoiceNo.Text = ro.Invoice
        Me.txtAmountPaid.Text = "RM " & ro.Amount
        Me.txtPaymentDate.Text = ro.PaymentDate
        Me.txtPackageSelected.Text = ro.PackageSelected
        Me.txtPackageStartDate.Text = ro.PackageStartDate
        Me.txtPackageEndDate.Text = ro.PackageEndDate
    End If

Значение Intellisense помогает вам с столбцами, поскольку они являются правильными. Свойства с правильным типом данных

...