webForumDet fria alternativet

Vad tror ni är smartast!

.NET

92 svar · 2 300 visningar · startad av Nickemannen · sida 3 av 5

Frågan, av Nickemannen

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 →
Medlem sedan apr. 20012 266 inlägg
#41

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.

Medlem sedan mars 20007 896 inlägg
#42

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...

Medlem sedan juni 20001 257 inlägg
#43

Som du svär.

Medlem sedan mars 20007 896 inlägg
#44

Missade du mina smileys efter? ;)

Men har jag inte rätt? Visst borde det gå att göra så?

Medlem sedan juni 20008 205 inlägg
#45

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å? :)

Medlem sedan mars 20002 836 inlägg
#46

Visst går det det ..... fast jag kan ju inge C# .... men liiiite VB.NET :e och där går det fin fint ...

Vi har "nästan" identiska exempel ;) , bara det att du bryter upp din sträng i fler bitar och bygger sedan ihop den ..... mitt exempel skickar man med hela den färdiga strängen

cya,
PatrikB

Medlem sedan mars 20007 896 inlägg
#47

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...

Medlem sedan mars 20007 896 inlägg
#48

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.

Medlem sedan juni 20008 205 inlägg
#49

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.

Medlem sedan mars 20007 896 inlägg
#50

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.

Medlem sedan juni 20008 205 inlägg
#51

Jo, .aspx kompileras väl vanligen ungefär som JSP-sidor om jag inte missminner mig.

Medlem sedan mars 20007 896 inlägg
#52

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. ;)

Medlem sedan juni 20008 205 inlägg
#53

Nä. Men man kan vila tryggt och veta att processorn får vila lite ;)

Medlem sedan apr. 20012 266 inlägg
#54

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.

Medlem sedan apr. 20012 266 inlägg
#55

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 :)

Medlem sedan mars 20007 896 inlägg
#56

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

Medlem sedan apr. 20012 266 inlägg
#57

man får kompilera om codebehind koden manuelt, antingen i Visual Studio .NET eller med vbc.exe, iof så använder nog VS.NET vbc.exe

Medlem sedan mars 20007 896 inlägg
#58

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

Medlem sedan apr. 20012 266 inlägg
#59

ja, vbc.exe var ett exempel, den används för VB.NET

Men med mitt exempel ska den inte behövas kompileras om varje gång man vill koppla till en annan server.

eftersom du anropar ditt databas objekt från en .aspx sida?

Medlem sedan mars 20007 896 inlägg
#60

Delvis det, men framför allt för att jag bygger upp själva kopplingen dynamiskt med en klass.

267 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)