2012-03-01 15 views
10

"Un tentativo di collegare un database di auto-nome per il file C: \ Users \ John \ Documenti \ Visual Studio 2010 \ Projects \ PAS \ PAS \ bin \ debug // PatAddSys mdf fallito. Un database con lo stesso nome, o specificato il file non può essere aperto, o si trova sulla condivisione UNC."Un tentativo di collegare un database di errore auto-nominato

Cosa c'è di sbagliato qui? Ho il codice corretto per la mia strada (credo), ma ancora questo errore si verifica ecco il mio percorso di database

private string dbPath = Application.StartupPath + "//PatAddSys.mdf"; 

Ecco la posizione del mio database

enter image description here

risposta

12

provare a impostare la proprietà User Instance nella tua stringa di connessione a true. È necessario aggiungere questo per la stringa di connessione:

User Instance=True 

Anche solo per essere di nuovo controllo che il server di database come potrebbe già contenere un database con lo stesso nome.

Spero che questo aiuti.

-3

Utilizzare questa:

Path.GetFullPath(yourpath_string) 

funzionerà

+0

io non sono sicuro che questo risponde alla domanda .... –

+0

per me sì, e non ha senso una risposta simile – Luf

1

penso che potrebbe essere molto molto tardi, ma

questa stringa mi danno l'errore precedente

<add name="MAB_ERP_2_0.Properties.Settings.MyConnection" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=Database\MabErp2.mdf;Integrated Security=true;" 
     providerName="System.Data.SqlClient" /> 

Ma se aggiungi | Directory dati | prima del nome del database quindi funziona bene

<add name="MAB_ERP_2_0.Properties.Settings.MyConnection" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database\MabErp2.mdf;Integrated Security=true;" 
     providerName="System.Data.SqlClient" /> 
0

PER AIUTO FUTURO !!

hai corretto è:

private string dbPath = Application.StartupPath + "//PatAddSys.mdf"; 

ma basta avere a che fare un passo è quello di utilizzare la barra rovesciata "\" invece di SLASH "/" così dovrebbe essere simile a questo:

private string dbPath = Application.StartupPath + "\\PatAddSys.mdf"; 

& grazie questa linea mi ha salvato un sacco di lavoro :)

2

modificare sia il worki corrente directory ng e la stringa di connessione per quelle corrette per risolverlo.

Selezionare il database che si trova in "Server explorer" quindi copiare la stringa di connessione esattamente come si vede nelle sue proprietà, quindi utilizzarla nei codici.

enter image description here

poi per la directory di lavoro corrente utilizzano lo stesso percorso senza il nome del database. Soluzione -> proprietà -> debug è dove si trova il percorso corrente della directory di lavoro. Questo funziona per Visual Studio 2015.

io uso il mio stringa di connessione come questa

Private constr As String = "Data Source = (LocalDB)\MSSQLLocalDB;AttachDbFilename=" + 
     Directory.GetCurrentDirectory() + "\DBNAME.mdf;" + 
     "Integrated Security=True;Connect Timeout=30;User Instance=False" 
0

In realtà ho caduto a questo problema, ma ho gestito facilmente. se la stringa di connessione è

connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;" 

è necessario per rendere il proprio LocalDB. Inizio Vai alla prompt dei comandi che scrivere

sqllocaldb create MyDatabase 

di iniziare la vostra base di dati

sqllocaldb start MyDatabase 

di ritorno al VS e modificare la stringa di connessione per

connectionString="Data Source=(LocalDB)\MyDatabase;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;" 
Problemi correlati