Tidigare (innan .NET kom) fick jag lära mig att när man jobbar med databaser så ska man ha så få och så korta databasanslutningar/anrop så möjligt. Det betyder att man gör så få anslutningar/anrop så möjligt och att man genast stänger anslutningen så fort man är klar. Hur hanterar ASP.NET databasanslutningar?
Nu sitter jag och granskar den kod som jag har skrivit med hjälp av Web Matrix och det ser ut som om det görs många olika databasanslutningar (egentligen en för varje funktion som har något med databasen att göra). SE EXEMPEL NEDAN.
Min första tanke var att det inte var så bra, men nu är min fråga: Hur .NET hanterar koden?
När koden körs på servern, letar då webbservern reda på alla databasanslutningar och gör sedan EN ENDA anslutning mot databasservern (fast än det i koden ser ut som flera) eller gör webbservern verkligen FLERA databasanslutningar?
Notera att det är samma databas på samma databasserver det handlar om.
Exempel på kod:
Function MyQueryMethod(ByVal iD As Integer) As System.Data.DataSet
Dim connectionString As String = "server='(local)'; trusted_connection=true; database='databasnamn'"
Dim dbConnection As System.Data.IDbConnection = New System.Data.SqlClient.SqlConnection(connectionString)
Dim queryString As String = "SELECT [news].* FROM [news] WHERE ([news].[ID] = @ID)"
Dim dbCommand As System.Data.IDbCommand = New System.Data.SqlClient.SqlCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection
Dim dbParam_iD As System.Data.IDataParameter = New System.Data.SqlClient.SqlParameter
dbParam_iD.ParameterName = "@ID"
dbParam_iD.Value = iD
dbParam_iD.DbType = System.Data.DbType.Int32
dbCommand.Parameters.Add(dbParam_iD)
Dim dataAdapter As System.Data.IDbDataAdapter = New System.Data.SqlClient.SqlDataAdapter
dataAdapter.SelectCommand = dbCommand
Dim dataSet As System.Data.DataSet = New System.Data.DataSet
dataAdapter.Fill(dataSet)
Return dataSet
End Function