Gå til innhold

Hvordan koble til lokal database?


Anbefalte innlegg

Hoi!

 

For ikke å få Jørn på nakken lager jeg enda en pen tråd :D

 

Jeg har til nå arbeidet med en database på internett, men vil flytte over til en lokal database slik at jeg kan arbeide uten nettilgang også.

 

Databasen er laget vha Add=> Database => "Database.mdf". Med den på internett var det bare å skrive:

 

<connectionStrings>
<add name="MyDb" connectionString="Data Source=...;Initial Catalog=...;User ID=...;Password=..." providerName="System.Data.SqlClient"/>
</connectionStrings >

 

I web.config, og så bruke:

 

using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["MyDb"].ConnectionString))
	{
		conn.Open();

 

Men hvordan gjør jeg det når den likker lokalt? Har jo ikke laget noe brukernavn eller passord (men vil gjerne det), og er ikke helt sikker på "Initial Catalog" heller. "Data Source" går jeg ut fra skal være localhost.

 

Men hvordan? Fungerer det på en helt annen måte når det er lokalt, kanskje?

Lenke til kommentar
Videoannonse
Annonse

Siden du bruker SQL Server er det best å bruke Integrated Security. Dvs. at den bruker windows brukeren din , eller brukeren som IIS kjører som for anonyme brukere.

 

connectionstring:

Server=.;integrated security=true;database=AndebySite2

 

eller

Server=localhost\mininstans;user id=webuser;password=blah;database=AndebySite2

 

Server kan være ".", "localhost", "minmaskin", "127.0.0.1", etc.... for default instanser. For named instances putter du bare "\mittinstansnavn" etterpå. F.eks. for SQL Server Express: ".\SQLExpress"

 

Hvis du skal være ekstra tøff kan du også kjøre SQL Server på andre porter enn default (1433):

Server=mindatamaskin\mininstans,47806

 

 

data source, initial catalog, etc trenger du ikke bry deg om med System.Data.SqlClient.... :thumbup:

Endret av jorn79
Lenke til kommentar

Hm... Fem minutter før svaret kom? Må ikke hvile på laurbær; plutselig kommer noen før deg!

 

  <connectionStrings>
<add name ="Database" connectionString="Server=.\SQLExpress;Integrated Security=true;Database=Database"/>
 </connectionStrings >

(Prøvde også uten "\SQLExpress")

 

Og kode:

 

		using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Database"].ConnectionString))
	{
		conn.Open();

	}

 

Gir:

 

Cannot open database "Database" requested by the login. The login failed.
Login failed for user 'ERLEND-X\[Bruker]'.

 

Har også forsøkt med:

 

  <connectionStrings>
<add name ="Database" connectionString="Server=.\App_Data\SQLExpress;Integrated Security=true;Database=Database"/>
 </connectionStrings >

(Databasen ligger i App_Data)

(Prøvde også uten "\SQLExpress")

 

Men da får jeg noe enda skumlere:

 

An error has occurred while establishing a connection to the server.  When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

(Høres ikke ut som det er riktig fremgangsmåte, nei)

 

Du skriver connectionstring=X "eller: blabla med passord og webuser"; jeg må vel finne meg en knapp et sted, og klikke på den for å legge til passord og brukernavn? Eller har databasen min funnet på å lage seg egne påloggingsopplysninger?

 

EDIT: Mulig jeg ikke forstod det der med named instances helt; kanskje det er der problemet ligger?

EDIT2: Ser jeg glemte " providerName="System.Data.SqlClient"", men samme problem kommer selv etter at det er lagt til.

Endret av Degeim
Lenke til kommentar
Cannot open database "Database" requested by the login. The login failed.
Login failed for user 'ERLEND-X\[Bruker]'.

 

(Databasen ligger i App_Data)

(Prøvde også uten "\SQLExpress")

 

Login failed betyr at den har klart å koble seg til serveren, men at du ikke har lagt inn brukeren som Login på SQL Server.

 

Siden databasen ligger i App_Data må du ha med:

AttachDbFilename=AppData\AndebySite.mdf

 

Men jeg ville nå heller attachet databasen på vanlig måte i SQL Server Management Studio....

Lenke til kommentar

Ørg, dette var ekkelt.

 

Login failed betyr at den har klart å koble seg til serveren, men at du ikke har lagt inn brukeren som Login på SQL Server.

 

Jeg har jo "Integrated Security=true"; da skal den vel bruke brukeren min?

Lenke til kommentar
Ørg, dette var ekkelt.

 

Login failed betyr at den har klart å koble seg til serveren, men at du ikke har lagt inn brukeren som Login på SQL Server.

 

Jeg har jo "Integrated Security=true"; da skal den vel bruke brukeren min?

 

Har brukeren din tilgang til databasen da? Bruker du Vista?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...