Te recomiendo que cuando hagas update, delete, insert uses el executenonquery, ya que no hay necesidad de usar un datareader.
Te podría quedar así:
Cita: ...
...
While mireader.Read
refer = Mid(mireader("codref"), 4, 3)
Dim lon As Int32 = refer
If lon >= min And lon <= max Then
Me.proceso.Text = mireader("codref")
Dim r As String = mireader("codref")
Dim l As Int16 = mireader("numlin")
sentencia = "update eplt set codmaq=" & Me.maqnue.Text & " where codref='" & r & "' and numlin=" & l & ""
p.retornaregistro(mico2, sentencia)
mireader2.Close()
End If
End While
...
...
y en tu método:
Cita: Public Sub retornaregistro(ByVal conf As BLL.Datos, ByVal sql As String)
Dim Lcom As New System.Data.SqlClient.SqlCommand(sql, conf.conex)
conf.conex.open()
Lcom.ExecuteNonQuery()
conf.conex.close()
End Sub
Pruebalo y cualquier cosa por aqui andamos...