0

ボタンが押されて複数回呼び出されたときにデータを取得することを唯一の目的とする関数があります。これは関数コードです:

 Function GetData2(ByVal clientNo As Integer) As List(Of SocioInfo)


    Dim theResults2 = New List(Of SocioInfo)
    Dim connStr = "Data Source=localhost;Initial Catalog=testdb;Integrated Security=True;MultipleActiveResultSets=true"


    Using conn = New SqlConnection(connStr)

        Dim sql = "SELECT  [FirstName], [LastName] FROM [CustInfo] Where ([NumCuenta] = @SocioNum)"
        Dim sql2 = "SELECT [AcctName], [AcctNum], [NewAcct], [Balance] From [ACCT_NEW] Where ([AcctNum] =  @SocioNum)"
        Dim sqlCmd = New SqlCommand(sql, conn)
        Dim sqlCmd2 = New SqlCommand(sql2, conn)
        sqlCmd.Parameters.AddWithValue("@SocioNum", CDbl(txtInput.Text))
        sqlCmd2.Parameters.AddWithValue("@SocioNum", CDbl(txtInput.Text))



        conn.Open()

        Dim rdr = sqlCmd.ExecuteReader
        Dim rdr2 = sqlCmd2.ExecuteReader

        While rdr.Read
            theResults2.Add(New SocioInfo With {
                           .Nombre = rdr.GetString(0),
                           .LastName = rdr.GetString(1)
})

        End While
        While rdr2.Read
            theResults2.Add(New SocioInfo With {
                                         .CuentaName = rdr.GetString(0),
                                          .AcctNum = rdr.GetValue(1),
                                          .AcctFull = rdr2.GetValue(2),
                                         .Balance = rdr2.GetValue(3)
                        })


        End While

    End Using

    Return theResults2

End Function

これがこれを行うための最良の方法であるかどうかは 100% わかりません (基本的に 2 つの異なるテーブルからデータを取得する必要があります)。問題は、Rdrエラーは表示されませんRdr2が、顔を吹くだけです。例外は次のとおりです。

Invalid attempt to read when no data is present.
4

1 に答える 1