2010-07-01 11 views
7

Utilizzo MS Visual Studio 2010 per creare un'applicazione con accesso al database di SQL Server 2008, ma quello che ho fatto per creare il database è stato aggiungere un nuovo "Progetto database SQL Server 2008", lo ha aggiunto e mi mostra tutto su il mio Solution Explorer, ma come faccio a scrivere la stringa di connessione per collegarmi ad esso, perché ho scritto questo, e non ha funzionato.Come definire una stringa di connessione a un database di SQL Server 2008?

SqlConnection cnTrupp = new SqlConnection("Initial Catalog = Database;Data Source = localhost;Persist Security Info=True;"); 

aggiornamento:

ho usato questo:

cnTrupp = new SqlConnection("database=DB_Trupp;server=.\\SQLExpress;Persist Security Info=True;integrated security=SSPI"); 

Ma quando uso il cnTrupp.Open() mi dice che l'accesso non è riuscito.

+3

http://www.connectionstrings.com/ li ha tutti. –

risposta

11

Controlla il sito Web connection strings che ha un sacco di esempi per le stringhe di connessione.

In sostanza, avete bisogno di tre cose:

  • nome del server a cui si desidera connettersi (uso "." o (local) o localhost per la macchina locale)
  • nome del database che si desidera connettersi a
  • qualche modo di definire la sicurezza - sia la sicurezza integrata di Windows, o definire una combinazione nome utente/password

Per esempio, se si desidera connettersi al computer locale e il AdventureWorks database utilizzando la protezione integrata, utilizzare:

server=(local);database=AdventureWorks;integrated security=SSPI; 

Oppure, se si dispone di SQL Server Express sulla vostra macchina nell'installazione di default, e si desidera connettersi al database AdventureWorksLT2008, utilizzare questo:

server=.\SQLExpress;database=AdventureWorksLT2008;integrated Security=SSPI; 
+0

'localhost' non ha nulla a che fare con il web o HTTP. Funzionerà perfettamente con SQL Server. –

+0

Potete fornire una fonte per il localhost vs (locale) vs. Informazioni? Ho sempre pensato che potresti usare localhost ... –

+0

@Abe Miessler: no, hai perfettamente ragione - localhost funziona altrettanto bene. Scusa per la confusione ..... –

0

È necessario specificare come autenticarsi con il database. Se si desidera utilizzare la protezione integrata (ciò significa usare l'autenticazione di Windows utilizzando il proprio account di Windows locale o di dominio), aggiungere questo alla stringa di connessione:

Integrated Security = True; 

Se si desidera utilizzare l'autenticazione di SQL Server (nel senso di specificare un account di accesso e la password invece di utilizzare un account di Windows), aggiungere questo:

User ID = "username"; Password = "password"; 
3

standard di sicurezza
dati Source = serverName \ instanceName; Initial Catalog = MyDatabase; User Id = myusername; Password = miaPassword;

Trusted Connection
dati Source = serverName \ instanceName; Initial Catalog = MyDatabase; Integrated Security = SSPI;

Ecco un buon riferimento su stringhe di connessione che tengo a portata di mano: ConnectionStrings.com

+0

ok, ma ho intenzione di installarlo su un altro computer, Come dovrei sapere il nome del computer dell'altro? – Osukaa

+0

Installare cosa? Il database o l'applicazione? L'unica cosa che ti interessa nella stringa di connessione è dove si trova il database. –

+0

Penso che potresti essere confuso serverName \ instanceName fa riferimento a SQLServer, non alla macchina su cui è in esecuzione il codice. – JohnFx

0

copia/incolla ciò che è al di sotto nel codice:

SqlConnection cnTrupp = new SqlConnection("Initial Catalog = Database;Data Source = localhost;Persist Security Info=True;Integrated Security = True;"); 

Tenete a mente che questa soluzione utilizza le finestre account per accedere in.

Come hanno detto John e Adam, questo ha a che fare con il modo in cui si effettua l'accesso (o non si effettua l'accesso). Guarda il link fornito da John per ottenere una spiegazione migliore.

+1

'localhost' è un identificatore di sistema per l'adattatore locale. Funzionerà bene; provalo in SSMS. –

+0

@Adam Robinson: hai assolutamente ragione - funziona come un fascino. Non sono sicuro di dove l'ho preso ... ok, ho imparato qualcosa di nuovo oggi! :-) –

0

Invece di scrivere nel codice direttamente vi suggerisco di fare uso del <connectionStrings> elemento dedicato nel file .config e recuperare da lì.

Utilizzare inoltre la dichiarazione using in modo che dopo l'utilizzo la connessione venga automaticamente chiusa e smaltita.

Un ottimo riferimento per la ricerca di stringhe di connessione: connectionstrings.com/sql-server-2008.

+0

-1 Questo non ha nulla a che fare con la domanda reale. –

+0

+1 fa un buon punto e fornisce una risorsa per le informazioni sulla stringa di connessione. –

+0

@Abe: il suo "punto" è "cercalo". Aggiungerlo a una risposta che risolve il problema reale è buono. Pubblicare ciò con informazioni che, pur essendo buone da sapere, non è correlato alla domanda, non lo è. –

Problemi correlati