Hej! vet inte om common.general är nån skillnad mot configurationsettings.appsettings("connectionsträngsnamn")Felmeddelande: The ConnectionString property has not been initialized
Jag har en asp.net 1.1 applikation som då och då genererar felmedd ovan.
Connectionstring-en är alltså tom och frågan är varför.
Arkitekturen på sidan är kanske muppig:
Jag har ett projekt/komponent för bla dbaccess som heter Common. I kompontenten Common finns klassen DBClass som är mitt DAL.
DBClass har ett fält som heter sConn (borde väl vara en property, men strunt i det så länge) . Den är "Shared".
Från code-behind i webbappen så sätter jag då
Common.DBClass.sConn=Common.General.GetConnString ' GetConnectionString läser upp conn-string ur en xml-fil.
Jag vet att arkitekturen på denna lösning är något märklig. Jag behöver inte hjälp med att ändra den. Vad jag behöver hjälp med är att förstå hur .NET funkar när man använder min kod.
När jag sedan gör databasanrop till klassen så tappar sConn sitt värde ibland (oftast inte).
Själva databaskoden är kort:
Public Shared Function Show(ByVal sSQLSelect As String) As DataSet
Dim oDataset As New DataSet
Dim oDataAdapter As New OleDb.OleDbDataAdapter(sSQLSelect, sConn)
oDataAdapter.Fill(oDataset)
Return oDataset
End Function
Finns det några uppenbara skäl till att sconn tappar sitt värde?
Eller frågan kan nog formuleras:
Hur kan en shared/static field i en komponents klass, vars värde sätts från en webbapplikation, tappa sitt värde när man sedan exekverar en metod som utnyttjar shared/static field?
Notera att det oftast funkar!Sv: Felmeddelande: The ConnectionString property has not been initialized
i web.config
<appSettings>
<add key="connectionsträngsnamn" value="data source=local; initial catalog=northwind; integrated security=true>
</appSettings>
jag brukar skapa en subrutin som gör det där, dvs hämtar connectionsträngen så när jag behöver den skriver jag i stil med... (och således för varje gång jag ansluter).
adapter..(sql, getconnectionstring)
det du kan göra är att lägga den i ett cache-objekt.
cache("myconnection") = configur... appsettings
sen i koden...
adapter...(sql, cache("myconnection"))