VB net 和 postgres : Getting "An operation is already in progress" using npgsql



我使用以下代码检索对象(产品)列表和其中的另一个列表(大小)。

Dim l As New List(Of Entidades.producto)
Dim c As New NpgsqlCommand("select id, name from product", cn)
Dim r As NpgsqlDataReader = c.ExecuteReader
Do While r.Read
    Dim p As New Entidades.product
    p.ID = r.Item("id")
    p.name = r.Item("name")
    l.Add(p)
    >>> I HAD THE OTHER LOOP HERE BUT HAVING THE SAME ISSUE TRIED TO PUT THE
    READER OUTSIDE OF THIS LOOP.
Loop
r.Close()
For Each p In l
    c = New NpgsqlCommand("select t.id id, t.name nombre from productsize pt join size t on t.id = pt.sizeid where productid = :productid order by ord", cn)
    c.Parameters.AddWithValue("productid", pgsqlTypes.NpgsqlDbType.Integer, p.ID)
    c.Prepare() <---- HERE I GET THE ERROR
    Dim rt As NpgsqlDataReader = c.ExecuteReader
    Do While rt.Read
        Dim t As New size
        t.ID = rt.Item("id")
        t.nombre = rt.Item("name")
        p.size.Add(t)
    Loop
Next

Return l

执行准备时,我收到"操作已在进行中"错误。

我认为关闭阅读器就足够了,这样我就可以运行另一个。

第二个循环没有关闭读取器,当我再次调用该函数时,它爆炸了。

相关内容

最新更新