glömde svara PatrikB :)
vet att ni menar att ha en super data class, men tror nog ni missförstod vad jag menade med att skicka med connecting stringen från en fil.
92 svar · 2 300 visningar · startad av Nickemannen · sida 3 av 5
Vad tror ni är smartast! Lägga datbaskopplingsträngen i global filen eller tar det för mycket minne? eller ha med en include fil? kan ju bli jobbigt om man skall byta lösenord eller något senare. OBS! jag menar bara strängen t.e.x String strConn = "server=(local)\\NetSDK;database=pubs;TrustedConnection=yes";
Läs frågan i sin helhet →glömde svara PatrikB :)
vet att ni menar att ha en super data class, men tror nog ni missförstod vad jag menade med att skicka med connecting stringen från en fil.
Hm, jag kan ju ingen C#, men jag tvivlar väldigt starkt på att man inte kan bygga upp strängar dynamiskt utan att behöva kompilera om komponenten.
Antingen har jag helt jävla fel, eller så förstår ni helt enkelt inte hur jag menar. :)
Så här menar jag:
// importering av bibliotek
namespace MyOwn {
public class MyDatabase {
SqlConnection mySqlConnection;
public MyDatabase( String server, String dbname, String user, String password ) { // Konstruktor
this.myConnection = new SqlConnection( "server=" + server + "; database=" + dbname + "; uid=" + user + "; pwd=" + password );
}
public DataSet getDataSet( String sqlQuery ) {
SqlDataAdapter myDataAdapter = new SqlDataAdapter( sqlQuery, this.myConnection );
DataSet myDataSet = new DataSet();
myDataAdapter.Fill( myDataSet );
return myDataSet;
}
}
}
Den här filen kompileras till en komponent som man sedan importerar till sin .aspx-sida. Där anropar man klassen och hämtar datan:
MyDatabase db = new MyDatabase( "minServer", "minDatabas", "mittAnvändarnamn", "mittLösenord" );
DataSet dataSet = db.getDataSet( "SELECT namn, epost FROM minTabell" );
...
Kan man inte göra så i .NET så förstår jag inte varför man överhuvud har utvecklat ett sånt skitspråk... ;)
Kopplingssträngen byggs upp dynamiskt i konstruktorn för MyDatabase-klassen, och jag har otroligt, förbaskat svårt att tro att man måste kompilera om filen om man inte kan skicka med parameters till en metod...
Som du svär.
Jag skulle anta att renholm menade just det du menar, SPiN. Man skriver in kopplingssträngen i en konfigfil i stället för i kjellkådan, blir alla nöjda då? :)
Nej, jag tycker ändå att mitt exempel är mycket mer dynamiskt. Man slipper ju totalt att låsa sig till filer. Man skickar med de värden som behövs för att bygga upp kopplingssträngen till konstruktorn för klassen! Varför hålla på att pilla i filer och liknande? Jobbigt, tycker jag. Men, men... Ni bestämmer ju hur ni vill arbeta...
Precis, PatrikB. Dynamik! Jag har så otroligt svårt att förstå varför man ska låsa sig till att arbeta med olika filer.
Men, alltså.
• Man får kopplingssträngen från en konfigfil.
• Man skickar värdet från konfigfilen till konstruktorn.
• Konstruktorn lever lyckligt i alla sina dagar utan att veta att den varit så när en konfigfil att han nästan kunde röra vid den.
• ASP.NET-scriptet slipper ändras eller kompileras om när man exempelvis byter lösenord i databasen.
Ja, jag förstår. Jag visste bara inte att .aspx-filer var tvungna att kompileras?! :o
Men att låsa sig till web.config tycker jag verkar odynamiskt om man vill flytta över sina filer till en annan server? Har man en vanlig XML-fil som man läser in, så går det ju bra - men jag tycker ändå inte om det. :)
Jag skulle ha deklarerat konstanter möjligtvis, om man använda kopplingen på flera sidor än en. Men smaken är ju som baken.
Jo, .aspx kompileras väl vanligen ungefär som JSP-sidor om jag inte missminner mig.
Ja, men man behöver ju inte kompilera dem manuellt? Var det inte det frågan gällde? Tror nog att jag drar mig ur den här diskussionen, jag verkar vara helt alldelles för lost på .NET. ;)
Nä. Men man kan vila tryggt och veta att processorn får vila lite ;)
Förstagången en .ASPX sida körs efter den ändrats kompileras den automatiskt, sedan finns det också något som heter codebehind som man kompilera separat, dvs att designkoden finns i .aspx sidan som ska fyllas med data, sedan har man en class som .aspx sidan ärver och den har hand om att sätta rätt data på rätt ställe och alla funktioner.
kom att tänka på en sak, det du(SPiN) menar med att connectionstringen låser sig i web.config, man kan ju fortfarande ändra men det som händer då är att applicationen startas om har jag för mig, dvs alla session och applications "glömsbort". Och det är ju ingevidare :)
Förstagången en .ASPX sida körs efter den ändrats kompileras den automatiskt, sedan finns det också något som heter codebehind som man kompilera separat.
Precis, det här visste jag om. Jag tyckte väl att det lät skumt att man måste kompilera om ( Manuellt ) varje gång. :o
Ja, det försår jag också. Men med mitt exempel ska den inte behövas kompileras om varje gång man vill koppla till en annan server. Och skriver man i C# använder man väl ändå cc.exe? :q
Delvis det, men framför allt för att jag bygger upp själva kopplingen dynamiskt med en klass.