Estimado tengo un codigo que llena una tabla con datos obtenidos de una consulta, por cada registro de esa consulta voy haciendo insert y update, hasta completar la tabla y usarla para generar un reporte. (que es un catalogo de artículos con imagenes)
El codigo me funciona bien localmente en mi PC ya que puedo modificar el max_user_connections, pero alojado en el hosting que no puedo modificar ese valor me da el error "User xxxxx already has more than 'max_user_connections' active connections"
Creo estar abriendo y cerrando las conexiones adecuadamente, pero no se si es lo más optimo, me podrían decir que puedo mejorar.? les paso el codigo..
Muchas gracias
Partial Class Catalogo_Rep
Inherits System.Web.UI.Page
Dim funcion As New funciones
Dim conMyData As MySql.Data.MySqlClient.MySqlConnection
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Me.Page.IsPostBack Then
LlenarTemporal()
BuscarFoto()
End If
End Sub
Protected Sub ReportViewer1_Load(sender As Object, e As EventArgs) Handles
ReportViewer1.Load
If Not Me.Page.IsPostBack Then
Dim ObjectDataSource1 As ObjectDataSource = .....)
Dim rds As Microsoft.Reporting.WebForms.ReportDataSource = ........)
ReportViewer1.LocalReport.DataSources.Clear()
ReportViewer1.LocalReport.DataSources.Add(rds)
ReportViewer1.LocalReport.DisplayName = Request.QueryString("vDesc")
ReportViewer1.LocalReport.ReportPath = "Catalogo.rdlc"
End If
End Sub
Sub LlenarTemporal()
Try
Dim Sql As String = " SELECT .... "
conMyData = funcion.connect()
Dim oComando As New MySqlCommand(Sql, conMyData)
oComando.Parameters.AddWithValue("?IdRubro", Request.QueryString("vRubro"))
Dim myreader As MySqlDataReader = oComando.ExecuteReader()
Dim cont As Integer = 1
Do While myreader.Read()
If cont = 1 Then
InsertarTwcata()
ElseIf cont = 2 Then
UpdateTwCata2(BuscoMaxId(),.....)
ElseIf cont = 3 Then
UpdateTwCata3(BuscoMaxId(),.....)
ElseIf cont = 4 Then
UpdateTwCata4(BuscoMaxId(),.....)
ElseIf cont = 5 Then
UpdateTwCata5(BuscoMaxId().......)
End If
If cont = 5 Then
cont = 1
Else
cont = cont + 1
End If
Loop
conMyData.Dispose()
conMyData.Close()
conMyData = Nothing
Catch ex As Exception
Response.Write(ex.Message)
Response.Write(ex.Source)
Response.Write("Fallo conexion")
Finally
End Try
End Sub
Sub InsertarTwcata(....)
Try
Dim Sql As String = " INSERT ...."
conMyData = funcion.connect()
Dim oComando As New MySqlCommand(Sql, conMyData)
oComando.Parameters.AddWithValue("?vCodigo", vCodigo)
oComando.ExecuteNonQuery()
conMyData.Dispose()
conMyData.Close()
conMyData = Nothing
Catch ex As Exception
Response.Write(ex.Message)
Response.Write(ex.Source)
Response.Write("Fallo conexion")
End Try
End Sub
Sub UpdateTwCata2(........)
Try
Dim Sql As String = " Update twcata ... "
conMyData = funcion.connect()
Dim oComando As New MySqlCommand(Sql, conMyData)
oComando.Parameters.AddWithValue("?vCodigo", vCodigo)
oComando.ExecuteNonQuery()
conMyData.Dispose()
conMyData.Close()
conMyData = Nothing
Catch ex As Exception
Response.Write(ex.Message)
Response.Write(ex.Source)
Response.Write("Fallo conexion")
End Try
End Sub
Sub BuscarFoto()
Dim Sql As String = " Select ..."
conMyData = funcion.connect()
Dim oComando As New MySqlCommand(Sql, conMyData)
Dim myreader As MySqlDataReader = oComando.ExecuteReader()
Do While myreader.Read()
ActualizarImagen(....)
Loop
conMyData = Nothing
End Sub
End Class
Function connect()
Dim conMyData As MySql.Data.MySqlClient.MySqlConnection
conMyData = New MySqlConnection(....)
conMyData.Open()
Return conMyData
conMyData.Close()
End Function