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%肯定,如果這是要做到這一點(基本上需要從兩個不同的表中獲取數據)的最佳方式。事情是,而Rdr
顯示我沒有錯誤,Rdr2
只是在臉上吹。例外情況是這樣的:
Invalid attempt to read when no data is present.
*捂臉*我剛看到它。這樣一個容易發現的問題...我向上帝發誓我在發帖之前看了5次。 Geesh。我現在確實有一個有趣的問題...我按下「搜索」按鈕,但程序只是有點手。沒有VB例外。 –
我對SQL很謹慎;我害怕它哈哈。這就是爲什麼我沒有去Inner Inner。你的回覆是完美的史蒂夫,感謝一百萬。 –