问题OracleDataAdapter填充DataSet [英] Issues OracleDataAdapter fill DataSet
问题描述
当我使用OracleDataAdapter.Fill(数据集)函数时出现错误,这是我的代码,因此您可以看到没有语法错误
< pre lang =vb> 公共 功能 getList( ByVal pVar As String ) As DataSet
Dim ds 作为 新 DataSet()
Dim oraData As OracleDataAdapter = Nothing
尝试
使用命令 As 新 OracleCommand(q_get_menu,AccesoDatosOracle.Instance)
A ccesoDatosOracle.Instance.Open()
command.CommandType = CommandType.StoredProcedure
Dim parm1 作为 OracleParameter = 新 OracleParameter( pVAR,OracleDbType.Varchar2)
parm1.Direction = ParameterDirection.Input
parm1.Value = pVar
command.Parameters.Add(parm1)
Dim parm2 作为 OracleParameter = 新 OracleParameter( pcur_tablapadre,OracleDbType.RefCursor)
parm2.Direction = ParameterDirection.Input
parm2.Value = DBNull.Value
command.Parameters.Add(parm2)
Dim parm3 作为 OracleParameter = 新 OracleParameter( pcur_tablahijo,OracleDbType.RefCursor)
parm3.Direction = ParameterDirection.Input
parm3.Value = DBNull.Value
command.Parameters.Add(parm3)
command.BindByName = True
oraData = 新 OracleDataAdapter(命令)
oraData.Fill(ds)
结束 使用
Catch ex 正如异常
Console.WriteLine( EL错误: + ex 。消息)
投掷 ex
最后
AccesoDatosOracle.Instance.Close()
结束 尝试
返回 ds
结束 功能
当调试行进入填充(ds)时出错,它表示内存中的空间已被占用。当我声明Dim ds As DataSet = Nothing表示它不能取空值。
我不知道这段代码有什么问题。
提前感谢
我注意到我声明了2个这样的游标。 Direction = ParameterDirection.Input而不是
。Direction = ParameterDirection.Output
这是根本原因
不知道为什么VS .NET没有给我关于这个错误的反馈
替换它而不是
Dim ds As New DataSet()
在你的第一行代码中声明数据集。
Dim ds As System.Nullable(Of DateSet)= New DataSet()
I got an error when i used the OracleDataAdapter.Fill(Dataset) function, here is my code so you can see that there is no Syntax error
Public Function getList(ByVal pVar As String) As DataSet
Dim ds As New DataSet()
Dim oraData As OracleDataAdapter = Nothing
Try
Using command As New OracleCommand(q_get_menu, AccesoDatosOracle.Instance)
AccesoDatosOracle.Instance.Open()
command.CommandType = CommandType.StoredProcedure
Dim parm1 As OracleParameter = New OracleParameter("pVAR", OracleDbType.Varchar2)
parm1.Direction = ParameterDirection.Input
parm1.Value = pVar
command.Parameters.Add(parm1)
Dim parm2 As OracleParameter = New OracleParameter("pcur_tablapadre", OracleDbType.RefCursor)
parm2.Direction = ParameterDirection.Input
parm2.Value = DBNull.Value
command.Parameters.Add(parm2)
Dim parm3 As OracleParameter = New OracleParameter("pcur_tablahijo", OracleDbType.RefCursor)
parm3.Direction = ParameterDirection.Input
parm3.Value = DBNull.Value
command.Parameters.Add(parm3)
command.BindByName = True
oraData = New OracleDataAdapter(command)
oraData.Fill(ds)
End Using
Catch ex As Exception
Console.WriteLine("EL error es: " + ex.Message)
Throw ex
Finally
AccesoDatosOracle.Instance.Close()
End Try
Return ds
End Function
When the debug line gets into the fill(ds) gives an error, it says that the space in the memory was already been occupied. When I declare Dim ds As DataSet = Nothing is says that it cannot take null value.
I don't know what is wrong with this code.
thanks in advance
I noticed that i declared 2 cursors like this.Direction = ParameterDirection.Inputinstead of this
.Direction = ParameterDirection.Output
that was the underlying cause
Wonder why VS .NET doesn't give me the feedback about this error
Replace this Instead of
Dim ds As New DataSet()
in your first line of code to declare the dataset.
Dim ds As System.Nullable(Of DateSet) = New DataSet()
这篇关于问题OracleDataAdapter填充DataSet的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!