RISOLTO Connection String SQL C#

Stato
Discussione chiusa ad ulteriori risposte.

qwerty92

Nuovo Utente
97
17
Ciao a tutti,
spiego brevemente il problema: sto facendo delle prove per un gestore di database per una attività con l'utilizzo di c# in visual studio 2017.
Premetto che sono ai primi approcci con la programmazione con database, mentre con c# ho già "giocato" un po' più spesso.
Il codice del btn_click inserito è:
Codice:
string accesso = "";
accesso = pathDBTxB.Text.ToString();
if (accesso != "")
{
    try
    { SqlConnection connDB = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=" + accesso + @";Integrated Security=True");
     connDB.Open();
     MessageBox.Show("Connessione stabilita con DataSource=MSSQLLocalDB");
     connDB.Close();
      }
      catch { MessageBox.Show("Impossibile accedere al database MSSQLLocalDB!");}

else
      MessageBox.Show("Non è stato inserito un indirizzo per il database! Prego inserirlo e riprovare");

Il fatto di usare una stringa da textbox (che viene scritta con bottone ed una OpenFileDialog) per l'accesso al DB è perchè potrei doverlo usare su più DB senza dover riscrivere il codice.

Il punto della questione è che ho programmato su ambiente Win10 con SQL Server 2016 e LocalDB e tutto funziona alla perfezione. Quando però sposto il .exe e il database su altro pc con Win7 SP1 con installato all'inizio solamento LocalDB2014 il programma mi risponde con il messagebox della parte catch.

Ho provato anche ad installare SQL Server 2014 express per intero e a reinstallare successivamente il LocalDB2014 ma riporta lo stesso errore.
Nella sezione InstanceConfiguration durante l'installazione ho inserito "default instance" e mi ha riportato appunto MSSQLLocalDB come ID istanza.

Per verifica ho provato anche a modificare la stringa di connessione sia con Data Source=(LocalDB)\V11.0 sia con Data Source=(LocalDB)\V12.0 ma ho ottenuto lo stesso risultato.
Quello che comunque vorrei avere è un software che posso usare sia su Win10 (SQL 2016) sia su Win7 (SQL 2014) senza modifiche di codice se possibile

Come detto prima non sono molto ferrato sui database quindi vi chiedo: Dove sbaglio?

Grazie a tutti.
 

qwerty92

Nuovo Utente
97
17
Per capire meglio quale e' l'errore aggiungi un parametro nella catch (https://msdn.microsoft.com/it-it/library/0yd65esw.aspx)
appena entra in quella sezione puoi verificare che tipo di errore c'e' stato.
Ciao, Grazie. Non ci avevo pensato di fare questa prova.
Screenshot errore: https://www.dropbox.com/s/3y76pnaamvb1je8/DB_error.jpg?dl=0 (N.B. l'ho testato su un pc con installato solo localDB 2014)
Ho provato anche installando il localDB 2014 SP1 e l'errore riportato è come codice uguale ma con descrizione diversa: https://www.dropbox.com/s/qxz5jqw0fc2w2bx/DB_error2.jpg?dl=0
In pratica mi sembra di aver capito che il DB è impostato su una versione (più recente) non compatibile con il LocalDB 2014. Cercando su google il codice dell'errore sembrerebbe un problema di login ma non penso sia quello il reale problema perchè sono in locale e con la "integrated security=true", però come detto prima sul lato connessione sono un po' ignorante :ops:

Ho cercato per un po' e sto cercando di capire se è un problema a livello di programmazione dal pc con Win10, VS2017 e SQL 2016 (c'è qualche parametro di compabilità da impostare su VS?) o oppure se è un problema a livello di pc di esecuzione finale (c'è qualcosa in particolare da impostare sul pc con win7?). Grazie
 

qwerty92

Nuovo Utente
97
17
Certo, scusa.
Il problema con la stringa di connesione ho risolto installando solo il localDB 2016 su Win 7 e creando una nuova istanza tramite cmd.exe.
Il problema è (era) che al riavvio del pc l'istanza creava problemi ma eliminando e ricreando l'istanza tutto funziona.
Nasce qui il problema di farlo durante il caricamento della form (che mi da problemi solo durante l'esecuzione se windows 7 come descritto in un altro post).
 
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!