我似乎无法在互联网上的任何地方找到我的问题的答案。我已经看到了其他人的解决方案,例如为appsettings添加键等,但这些都不适用于我。
Imports Oracle.DataAccess.Client
Imports Oracle.DataAccess.Types
Imports System.Data
Sub Button1Click(sender As Object, e As EventArgs)
Dim oradb As String = "DATA SOURCE=INITIATE;PASSWORD=pASS;PERSIST SECURITY INFO=True;USER ID=uSER"
Dim conn As New OracleConnection(oradb)
Try
Dim sql As String = "select MEMRECNO from INIT.MPI_MEMHEAD where MEMIDNUM = '" + txtMRN.Text + "'"
Dim cmd As New OracleCommand(sql, conn)
cmd.CommandType = CommandType.Text
Dim dr As OracleDataReader = cmd.ExecuteReader()
dr.Read()
txt1.Text = dr.GetInt32(0)
Catch ex As Exception
richTextBox1.Text = richTextBox1.Text + vbCrLf + ex.Message
End Try
End Sub
现在,当我运行此代码时,如果我在前25个记录中输入一个值(当直观地查看Oracle中的表时),则返回结果。但是,当我输入一个可能是100万记录的值时,我收到此错误:“由于对象的当前状态,操作无效。”
是的,该值确实存在。因为如果我在Oracle中运行完全相同的查询,我会得到结果。
这使我相信连接是超时,关闭,或者使用Oracle数据访问客户端可以返回多少行的限制。