Avatar billede thepsypher Nybegynder
30. maj 2008 - 08:07 Der er 4 kommentarer og
1 løsning

Connectionstrings når mere en applikation skal tilgå DBen

Hej eksperter!

Har en del abstrakte spørgsmål.

Har en C# ASP.NET site hvor jeg benytter en database og førhen har jeg bare kunne bruge:

<add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ASPNETDB.MDF;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" />

Det har virket fint, men nu har jeg så en applikation, som sideløbende skal benytte samme data med 10 sekunders intervaller.

Nu får jeg så en "Databasen bliver brugt af en anden process" fejl og det er måske forståeligt nok.

Har mest leget med simple Access-databaser før i tiden og der er det jo en fysisk fil man forbinder til.

Mine spørgsmål er følgende:

Skal "AttachDbFilename=|DataDirectory|\ASPNETDB.MDF" forstås på præcis samme måde som forbindelsen til Access-databasen (istedet for at den bliver "hosted" i SQL serveren)?

Når flere processer skal tilgå den, skal jeg så benytte SQL server?

Er connectionstringen ens for SQL server og SQL server express?


hvis nogen kommer med kode-eksempler, så er det en lokal databse uden brugernavn/password.


Håber nogle kan give mig en bedre forståelse af database-filer vs. SQL server, da den er MEGET tynd! ;-)

Links til gode forklarende ressourcer tages imod med kyshånd.

Hilsen Psypher
Avatar billede aaberg Nybegynder
30. maj 2008 - 09:37 #1
Du kan bare attache en process til din database. Løsningen til dit problem er at attache databasen til sql-express på forhånd, og ikke i din connectionstring. Jeg går ud fra at du bruger Sql Server Management Studio Express til at udvikle din database. hvis du ikke gør det kan det anbefales. Downloades her:
http://www.microsoft.com/downloads/details.aspx?FamilyID=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796&displaylang=en

I Sql Server Management Studio Express højreklikker du på Databases noden, og vælger "Attach". Så attacher du databasen til serveren, og derfor behøver du ikke at attache til den i din connectionstring. Hvis du allerede ser navnet på din database, er den attachet. Nu kan du bruge følgende connectionstring:
Data Source=.\SQLEXPRESS;Initial Catalog=ASPNETDB;Integrated Security=SSPI;

Den eneste forskeld på connectionstringen til SQL server, er at du skriver "Data Source=ServerName" i stedet for express versionen: "Data Source=ServerName\SQLEXPRESS"
Se evt: http://connectionstrings.com
Avatar billede arne_v Ekspert
31. maj 2008 - 02:43 #2
Det er måde at gøre det på.

Jeg tror dog at værdien for Data Source er helt uafhængig af hvilken måde
der attaches på.
Avatar billede aaberg Nybegynder
12. juni 2008 - 20:57 #3
Fik du svar på dit spørgsmål?
Avatar billede thepsypher Nybegynder
13. juni 2008 - 03:01 #4
jeps og resten fik jeg analyseret, ytestet og læst mig frem til.

Kast et svar :-)
Avatar billede aaberg Nybegynder
13. juni 2008 - 07:45 #5
svar :-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester