Hej, Hej. Det hade ingen effekt. Lade till POOLING=False sist i connectionstringen, men felet kommer fortfarande lika ofta... Har du testat med någon annan driver? typ MySQLs egna för .net, den finns på www.mysql.com Med den drivern fungerar det perfekt!"Lost connection to MySQL server during query"-fel
Detta felet (se rubriken) uppkommer sporadiskt när jag surfar runt på min sida som använder en MySQL-databas. Jag har tidigare arbetat med Access-databaser, och jag bygger upp databasklasserna på samma sätt (d.v.s. öppna och stänga anslutningen för varje anrop). Fungerar det inte likadant i MySQL? Google säger att det vanligtvis är allvarliga problem med servern när man får detta fel, men jag tycker inte att det borde vara det i detta fallet. Jag kan trots allt surfa runt på sidan, och felet uppkommer då och då och inte vid bestämda ställen eller tidpunkter. MySQL-servern körs på webbhotellet, och jag kan administrera min databas via ett webbgränssnitt. Jag använder ASP.NET v1.1 med de medföljande ODBC-drivrutinerna.
För er som vill se kod, kan jag visa hur ett typiskt anrop kan se ut:
Public Sub UpdateMessage()
Dim dbC As New OdbcCommand
dbC.CommandText = "UPDATE TBL_Messages SET FLD_Meeting_ID = ?, FLD_Text = ?, FLD_DateTime = ?, FLD_ByLine = ? WHERE FLD_ID = ?"
dbC.Parameters.Add("", MeetingID)
dbC.Parameters.Add("", Text)
dbC.Parameters.Add("", Registered)
dbC.Parameters.Add("", ByLine)
dbC.Parameters.Add("", intID)
DoUpdate(dbC)
End Sub
Funktionen ovan ingår i en klass som ärver från en basklass, där funktionen DoUpdate() ser ut såhär:
Protected Const ConnectionString As String = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=rätturl; DATABASE=rättdb; UID=rättuserid; PWD=rättpwd;"
Protected Overridable Sub DoUpdate(ByVal Command As OdbcCommand)
Dim dbConnection As OdbcConnection
Try
dbConnection = New OdbcConnection(ConnectionString)
If Not Command Is Nothing Then
CheckInstance()
Command.Connection = dbConnection
dbConnection.Open()
Command.ExecuteNonQuery()
Else
Throw New Exception("DoUpdate(): Kommando saknas.")
End If
Finally
DoSharedKill(dbConnection)
End Try
End Sub
'Inkluderar denna med, så bör hela processen bli klargjord för er?
Protected Shared Sub DoSharedKill(ByRef dbConnection As OdbcConnection, Optional ByRef dbReader As OdbcDataReader = Nothing)
If Not IsNothing(dbReader) Then
If Not dbReader.IsClosed Then
dbReader.Close()
End If
End If
If Not IsNothing(dbConnection) Then
If dbConnection.State = ConnectionState.Open Then
dbConnection.Close()
dbConnection.Dispose()
End If
End If
End Sub
CheckInstance() kontrollerar endast ID-numret, och utför ingenting som har med databasanropet att göra.
Några idéer?
Tack på förhand!
Sv: "Lost connection to MySQL server during query"-fel
Pröva att sätta till detta i din connection-sträng:
pooling=false
Tror att det är poolingen som inte riktigt fungerar...
mvh,
PhilipSv:"Lost connection to MySQL server during query"-fel
Sv:"Lost connection to MySQL server during query"-fel
Sv: "Lost connection to MySQL server during query"-fel
Tack för hjälpen!