Permalänk
Medlem

SQL Databas problem

Hej!

Har ett litet program som sparar inställningar och data i en databas som jag har skapat i Visual studio 2010.
Allting fungerar bra på utvecklar datorn men när jag flyttar över applikationen till en annan pc så lyckas jag inte koppla upp mig mot databasen utan får följande error:

Citat:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

När jag skapade applikationens databas följde jag denna http://msdn.microsoft.com/en-us/library/ms171890(VS.110).aspx.

Och har en connection string som ser ut på följande sätt:

<add name="test.Properties.Settings.CDBConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\CDB.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" />

När jag ska ansluta till databasen gör jag det på följande sätt:

DB = new DataLinqDataContext(settings.DatabasePath); if (DB.DatabaseExists()) { Logger.Write(LOGTYPE.TRACE, "[Database] Successfully connected to database! ", TRACETYPE.DATABASE); } else { Logger.Write(LOGTYPE.TRACE, "[Database] Successfully created database!", TRACETYPE.DATABASE); DB.CreateDatabase(); SaveSettings(settings); }

settings.DatabasePath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @\CDB.mdf

Som output från projektet har jag också en CDB.mdf vilken jag lägger under dokument på klient datorn.

Jag har också provat att installera SQL Server 2012 Express LocalDB på klient datorn samt SQL Server 2008 Express utan att lyckats få det att fungera. Har försök läsa allt jag kan hitta och som jag förstår det borde det köras en service som heter SQLEXPRESS, vilket det gör på utvecklar datorn men inte klient datorn även fast jag har provat att installera olika versioner av SQL EXPRESS!

Jag använder mig också av Inno Setup för att skapa en installer men lyckas inte lista ut vilka parametrar jag ska passa vidare till installationerna för sql server för att få det att fungera =/

(har även försökt installera dom manuellt utan någon lycka)

Utvecklardatorn har:
Visual Studio 2010
Windows Vista

Klient dator: Windows 7

någon ide om vad som kan vara fel? Håller på att bli galen!

Tack på förhand
//Niklas

Permalänk

Använder aldrig SQL Express utan vanliga SQL Server så jag vet inte exakt hur Express jobbar med säkerhet.

* Han den användaren du kör på klienten access iom att du kör integrated security?
* Är portar öppna på utvecklingsburken så att SQL Express är åtkomstbar? Standardport för SQL Server är 1433 tror jag, vet inte om SQL Express kör på samma.
* Är SQL Express öppen för remote connections? (Googla om du inte vet hur du konfar)
* Test att skapa ett konto i SQL Express och köra konto/lösenord ist för Integrated Security?

Visa signatur

Keaton once said, "I don't believe in God, but I'm afraid of him." Well I believe in God, and the only thing that scares me is Keyser Soze.

Permalänk
Medlem
Skrivet av Keyser Soze:

Använder aldrig SQL Express utan vanliga SQL Server så jag vet inte exakt hur Express jobbar med säkerhet.

* Han den användaren du kör på klienten access iom att du kör integrated security?
* Är portar öppna på utvecklingsburken så att SQL Express är åtkomstbar? Standardport för SQL Server är 1433 tror jag, vet inte om SQL Express kör på samma.
* Är SQL Express öppen för remote connections? (Googla om du inte vet hur du konfar)
* Test att skapa ett konto i SQL Express och köra konto/lösenord ist för Integrated Security?

När jag valde SQL EXPRESS va det för att jag hittade den här: http://msdn.microsoft.com/en-us/library/hh510202.aspx

Vad gäller öppna portar osv borde det inte vara något problem, har stängt av brandväggar med mera.
Nej den borde vara stängd för remot connections, står att den är det by default vid installation, men att det inte ska behövas när det körs lokalt http://msdn.microsoft.com/en-us/library/hh510202.aspx

Okej, har inte testat det, skulle helst ha utan, kan man köra utan någon form av security då datan i sig inte är "känslig"

Permalänk
Medlem
Skrivet av xzhaskd:

Om man ska gå efter informationen i den artikeln så ser det ut som du använder fel anslutnings sträng, mer precist fel instans namn i strängen.

Den borde väl isåfall vara:
Server=(LocalDB)\v11.0; Integrated Security=true ;AttachDbFileName=|DataDirectory|\CDB.mdf

Verkar ju även konstigt att det inte syns någon sql service på den datorn, men jag har aldrig använt mig av localdb installationen, finns så många varianter nu så man blir lite trött.

Ja jag såg det också, håller på att testar nu. återkommer med resultat efter lunch, men konstigt att det fungerar på ena datorn men inte andra =/

Jo tack, men tror att det ska vara smidigt när det finns integrerat i studio men nej! och varför kan inte studio baka in det när man gör en installer därifrån? suck =(

Permalänk

Ok, missförstod ursprungsfrågeställningen, trodde du skulle deploya applikationen på burk 2 men fortfarande gå mot databasen på burk 1....

När det gäller instansnamnet så är .(punkt) samma som localhost

Visa signatur

Keaton once said, "I don't believe in God, but I'm afraid of him." Well I believe in God, and the only thing that scares me is Keyser Soze.

Permalänk
Medlem
Skrivet av niklu147:

Ja jag såg det också, håller på att testar nu. återkommer med resultat efter lunch, men konstigt att det fungerar på ena datorn men inte andra =/

Jo tack, men tror att det ska vara smidigt när det finns integrerat i studio men nej! och varför kan inte studio baka in det när man gör en installer därifrån? suck =(

Testade med både

Server=(localdb)\v11.0;Integrated Security=true

Server=(LocalDB)\v11.0; Integrated Security=true ;AttachDbFileName=|DataDirectory|\CDB.mdf

Ingen lycka =/

Vad kan det vara so skiljer de två maskierna åt? jag fattar inte =/

Med Visual Studio 2010 verkar det som att SQL Server 2008 följer med om nu det kan vara av betydelse.

Permalänk
Medlem
Skrivet av Keyser Soze:

Ok, missförstod ursprungsfrågeställningen, trodde du skulle deploya applkationen på burk 2 men fortfarande gå mot databasen på burk 1....

Okej, nej tanke är att applikationen ska ligga på ca 10 olika maskiner med sina egna databaser lokalt

Permalänk
Medlem
Skrivet av xzhaskd:

Vad jag förstår har du lagt till en "service based database" till projektet och inte en "local", service based kräver hela sql server express (eller sql server) installerat på maskinen medans local sköter sig självt och allt hänger med programmet.

Om du har installerat sql server express på klient datorn så ska det fungera i vilket fall som helst om strängen matchar men det låter ju som att den inte hittar instansen.

Exakt vad som blir fel är svårt att svara på när man inte kan kolla konfiggen själv och pröva saker men kolla upp att sql server installationen verkligen heter SQLEXPRESS på den datorn och kanske pröva med en "local" databas istället i projektet om du inte behöver hela sql server express funktionaliteten.

Pröva också att hårdkoda filnamnet i strängen och kolla om databasfilen verkligen hängde med, ibland kan inställningarna göra att den inte alltid kopieras dit man tror.

Okej, hur gör jag för att bara köra en local?

Har nu provat:
Server=(LocalDB)\v11.0; Integrated Security=true User Instance=True;AttachDbFileName=|DataDirectory|\CDB.mdf

Tyvärr ingen skillnad när jag la till: User Instance=True

Permalänk
Medlem
Skrivet av xzhaskd:

Den databastyp du valt kräver SQL Server Express på datorn, vad jag menade var att helt gå fundera på att gå över till att använda en SQL Server Compact Edition databas (*.sdf) som inte behöver någon installation av express först, eftersom du tydligen vill ha databaserna separata så känns det overkill med att installera sql server express på maskinerna. Men det kräver ju kanske lite mer jobb att ändra det nu.

Om du har installerat sql server express på klientdatorn så ska tjänsten synas under tjänster (services) gör den inte det så är den inte installerad. Om den är installerad så får du ta reda på vad instansnamnet är på klientdatorn, har du hållit på och installerat och installerat om så finns det en chans att instans-namnet kan vara SQLEXPRESS.1 eller SQEXPRESS.2 eller något liknande, instans namnet bör stå i namnet på tjänsten.

Okej, ja jag har funderat på att byta från SQL EXPRESS, fungerar compact med linq to sql?

Ja det är det jag tycker är så konstigt, har försökt installera flera olika versioner av SQL Server Express, 2005, 2008, 2012 osv.. men den har aldrig dykt upp under tjänster det enda som kmmer upp ibland är SQL Server VSS Writer men inget annat =/

Permalänk
Medlem
Skrivet av xzhaskd:

Ja linq to sql ska fungera även med sql compact sedan version 3.5 tror jag.

Nej, om du inte ser tjänsten så är express inte installerad så det är nog det som är fel.

Du hämtade alltså denna och installerade:
http://www.microsoft.com/en-us/download/details.aspx?id=29062

Okej kanske ska byta ut mot compact..

Nja, inte exact den tror jag, fan alla heter lika dant men har olika storlek.. laddar he så ska jag testa...

Annars har jag testat:

http://www.microsoft.com/en-us/download/details.aspx?id=1695
http://www.microsoft.com/sqlserver/en/us/editions/2012-editions/express.aspx

och ett gäng andra varianter so folk har länkat till på forum

Permalänk
Medlem
Skrivet av xzhaskd:

Okej, LocalDB verkar vara något nytt i och med 2012 och tänkt som en ersättning för compact så om det är den du har installerat så ska mycket riktigt ingen tjänst synas utan den startas när den behövs.

Vilken .NET version har förresten klientmaskinen, LocalDB kräver tydligen absolut senast uppdaterade versionen (4.0.3) och om du använder den ska du då kunna köra med Server=(LocalDB)\v11.0; Integrated Security=true; User Instance=True;AttachDbFileName=|DataDirectory|\CDB.mdf

Annars, ta till stora klubban och installera hela sql server express, kolla instans namnet och kör med den strängen du hade i första inlägget.

Jag visste inte om att LocalDB fanns ens, behövdes det verkligen en ny variant ?

Ja det finns förvirrande mycket olika varianter!

Jag jag installerad även SqlLocalDB.msi och klienten har .NET 4.0.3.... så det ska inte vara ågra problem, kanske finns en nyare, kan kika ifall det kan vara felet men det är iallafall någon 4.0.3

och o man läser på den sidan borde det vara denna:

Server=(LocalDB)\v11.0; Integrated Security=true; User Instance=True;AttachDbFileName=|DataDirectory|\CDB.mdf

men den som skapades automatiskat från örjan var denna:

connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\CDB.mdf;Integrated Security=True;User Instance=True"

Permalänk
Medlem
Skrivet av xzhaskd:

Förresten, pröva att skicka in den kompletta connection strängen till DataLinqDataContext, inte bara filsökvägen till databasfilen.

Upptäckte precis att SP1 inte var installerat, den versionen av sql server express du länka till sa ifrån, så håller på att uppgraderar nu, men dom andra sa inget så hoppas det kan vara felet.

Okej menar du typ:

Server=(LocalDB)\v11.0; Integrated Security=true; User Instance=True;AttachDbFileName=|DataDirectory|\CDB.mdf Path/Data Source = "vart mdf filen finns ?"

Permalänk
Medlem
Skrivet av xzhaskd:

Antingen:

DB = new DataLinqDataContext(@Server=(LocalDB)\v11.0; Integrated Security=true; User Instance=True;AttachDbFileName=|DataDirectory|\CDB.mdf);

eller

DB = new DataLinqDataContext(@Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\CDB.mdf;Integrated Security=True;User Instance=True);

Första ska ju då kräva localdb installationen, den andra hela sql server express vilket förmodligen är säkraste kortet eftersom du installerar det nu.

Okej perfekt, ska testa det det första jag gör när jag kommer tillbaka i morgon, tack för hjälpen!

Permalänk
Medlem
Skrivet av niklu147:

Okej perfekt, ska testa det det första jag gör när jag kommer tillbaka i morgon, tack för hjälpen!

Det fungerade att installera SP1 -> SQL Server Express (den versionen du länkade till) och sedan de connection strängarna jag hade från början!

Funderar dock på att gå över till compact iallfall, just för att slippa skicka rund SQL Server Express på 500 mb

Permalänk
Medlem
Skrivet av xzhaskd:

Bra att det ordnade sig! Ja compact är nog bättre i det här fallet, skickar du med det i paketet så ska det bli runt 4M extra, viss skillnad.

Annars verkar ju localdb bra men verkar trixigt att få att fungera med nuvarande visual studio.

Ja, jag tyckte det lät smidigt men har juh varit allt annat än smidigt! Och nu när jag uppgraderade till SP1 dök det upp andra problem. Alla com portar försvan och jag lyckas inte få tillbaka dom så får rulla om maskinen =/ så får bli compact hur som.

Permalänk
Medlem

bra att det verkar ha löst sig. i framtiden så kan jag rekomendera sqlite. Det är en väldigt kompakt databas som inte kräver någon server applikation. Trevligt då man slipper installera något extra när man flyttar programmet.

http://www.sqlite.org/
bibliotek för .net : http://sqlite.phxsoftware.com/

Visa signatur

| Ryzen 5800x | Asus prime x470 pro | Asus rtx 3080 tuf oc | Gskill 32gb 3,6ghz | Dell S2721DGFA | Asus MG279Q |