Dim strSQL As String strSQL = "SELECT F1, F2 FROM Table1" Dim ConnProd As New SqlConnection("SERVER=mssql.buydomains.dk; UID=xx; PWD=yy; DATABASE=neesdk;") Dim SQLTekstProd As New Data.SqlClient.SqlCommand(strSQL, ConnProd) Dim dsProd As Data.SqlClient.SqlDataReader
Dim ConnTest As New Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings("LocalSqlServer").ConnectionString) Dim SQLTekstTest As New Data.SqlClient.SqlCommand(strSQL, ConnTest) Dim dsTest As Data.SqlClient.SqlDataReader
If Request.ServerVariables("HTTP_HOST") = "www.zzz.dk" Then ConnProd.Open() dsProd = SQLTekstProd.ExecuteReader() Else ConnTest.Open() dsTest = SQLTekstTest.ExecuteReader() End If
Det er ikke særlig praktisk at skulle operere med dsTest eller dsProd, så kan man gøre det, at man lægger denne kode ned i en funktion/subprocedure, som man sender strSQL til og modtager et dataset retur, som man så kan arbejde videre med (valget af datakilde foregår jo så i selve funktionen/sub'en)?
tilføj denne her under din localsqlserver connection string: <add name="Prodsqlserver" connectionString="SERVER=mssql.buydomains.dk; UID=xx; PWD=yy; DATABASE=neesdk;"/>
Public Shared Function getConnectionString() As String Dim Constr As String = String.Empty If HttpContext.Current.Request.ServerVariables("HTTP_HOST") = "www.zzz.dk" Then Constr = ConfigurationManager.ConnectionStrings("Prodsqlserver").ConnectionString Else Constr = ConfigurationManager.ConnectionStrings("LocalSqlServer").ConnectionString End If Return Constr End Function End Class
Dim strSQL As String strSQL = "SELECT F1, F2 FROM Table1" Dim Conn As New SqlConnection(Database.getConnectionString) Dim SQLTekst As New Data.SqlClient.SqlCommand(strSQL, Conn) Dim ds As Data.SqlClient.SqlDataReader Conn.Open() dsProd = SQLTekst.ExecuteReader()
Public Shared Function getConnectionString() As String Dim Constr As String = String.Empty If HttpContext.Current.Request.ServerVariables("HTTP_HOST") = "www.zzz.dk" Then Constr = ConfigurationManager.ConnectionStrings("Prodsqlserver").ConnectionString Else Constr = ConfigurationManager.ConnectionStrings("LocalSqlServer").ConnectionString End If Return Constr End Function End Class
mht til 2 config filer. Så skal man jo konstant være sikker på at de er ens bortset fra connectionstring. Og man sikre sig at man ligger den rigtige det rigtige sted så test ikke er aktiv når web stedet er i produktion.
Så er det nemmere bare at ændre i connectionstringen i web.config.
jeg er stadig noget skeptisk overfor ideen om konfigurations filer som skal vaere ens, men hvor man saa i applikationen tester om det er det ene eller andet
konfigurations filer enten er forskellige eller kan blive det
det er helt rigtigt at man skal vaere meget omhyggerlig med at det er den rigtige konfiguration der bruges (<add key="allUsersAdmin" value="true"/> etc.)
men ofte vil man sige at developerne kun leverer en template for konfigurations filer (web.config.sample eller lignende), men at det er den som er ansvarlig for serveren (test eller drift) som ejer konfigurations filerne
Til 11/02-2006 17:42:27 den måde som jeg har foreslået til neesgaard har du kun en config fil.
Meget kan gå galt hvis du lave ged i web.config. I asp.net 2.0 kan det være endnu værre fordi mange flere ting defineres i web.config. Men hvis test miljøet er en afspejling af produktion bør det 2 config filer være ens. det samme bør i stykke hen af vejen gælde for anden opsæning med roller oav.
Det er ikke af uinteresse, at jeg ikke er vendt tilbage, men jag har været på kursus hele ugen (i ASP.NET), så jeg tænkte at vente med at nærlæse til jeg var færdig med det.
Nu har jeg fået det til at køre lokalt, men når jeg kører det på webserveren, så får jeg meldingen:
Name 'getConnectionString' is not declared.
ved
Dim Conn As New Data.SqlClient.SqlConnection(getConnectionString())
Er det så ikke sådan, at men classkode skal indkapses i et Namespace og det Namespace skal refereres til i Default.aspx.vb (Jeg kører dette i Visual Web Developer Express 2005)?
Ja - jeg kan godt se, at jeg har været ekstremt sløv til at følge op på mine spørgsmål og det beklager jeg meget, når I har brugt tid på det. Jeg vil fremover være meget mere opmærksom på dette. Jeg lukkede for ikke at forstyrre jer med noget, jeg ikke havde fulgt til dørs og ikke havde fået til at virke, men læg meget gerne et svar.
Jeg har forsøgt, men åbenbart ikke lykkes! Som sagt vil jeg følge tæt op fremover.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.