n° 219
Novembre 2017
Dicembre 13, 2017, 05:07:14 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  


* Messaggi recenti
Messaggi recenti
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: Errore connessione a db  (Letto 5668 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
danyw3b
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 35

pk136zu@hotmail.com
Mostra profilo
« inserita:: Settembre 10, 2014, 12:33:33 »

Ho questo codice:
Codice:
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;


public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            string connectionString = "(localdb)\v11.0; Integrated Security=True; Pooling=True; Initial Catalog=NomeDB'";


            SqlConnection conn = new SqlConnection(connectionString);
            conn.Open();
        }
       
        catch(System.ArgumentException controllo)
        {
           
           
            Response.Write(controllo.Message.ToString());
        }
             


    }
}

Ecco l'eccezione che mi viene sollevata: "Parola chiave '(localdb) 11.0; integrated security' non supportata."

Cosa sbaglio?
Registrato
DonZaucker74
Jr. Member
**

Karma: +4/-1
Scollegato Scollegato

Messaggi: 150


Mostra profilo
« Risposta #1 inserita:: Settembre 10, 2014, 01:42:26 »


Ciao,

il motivo mi sembra abbastanza chiaro:
(localdb)\v11.0; Integrated Security non è una chiave valida.
"Integrated security" è una chiave di una connection string, ma "(localdb)\v11.0;" chiaramente no.

Le connection strings sono rappresentate da una serie di coppie (chiave=valore) separate dal carattere ;
Nel tuo caso "(localdb)\v11.0;" rappresenta un errore sintattico.

dZ
Registrato
danyw3b
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 35

pk136zu@hotmail.com
Mostra profilo
« Risposta #2 inserita:: Settembre 10, 2014, 02:47:57 »

Innanzitutto grazie per la risposta!
Come faccio ad indicare il percorso locale del database?
Registrato
DonZaucker74
Jr. Member
**

Karma: +4/-1
Scollegato Scollegato

Messaggi: 150


Mostra profilo
« Risposta #3 inserita:: Settembre 10, 2014, 02:55:54 »

Citazione
Come faccio ad indicare il percorso locale del database?

devi specificare il datasource dentro la tua connectionstring.

Codice:
Data Source=(LocalDB)\v11.0;


dZ
Registrato
danyw3b
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 35

pk136zu@hotmail.com
Mostra profilo
« Risposta #4 inserita:: Settembre 11, 2014, 12:39:06 »

Ho cambiato la stringa di connessione copiandola 1:1 da Visual Studio, visto che da lì quando faccio il test di connessione mi dà buon esito, ma nulla:

Codice:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data.OleDb;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {

            string connectionString = "Data Source=(localdb)\v11.0;Initial Catalog=Daniele;Integrated Security=True";
            SqlConnection connessione = new SqlConnection(connectionString);
            connessione.Open();
           
        }

        catch (SqlException controllo)
        {

           
            Response.Write("Ops... c'è un problema: " + controllo.Message.ToString() + " Codice Errore: " + controllo.ErrorCode.ToString());
           
        }
       
             

    }
}

Ecco l'errore:

Ops... c'è un problema: Si è verificato un errore di rete o specifico dell'istanza mentre si cercava di stabilire una connessione con SQL Server. Il server non è stato trovato o non è accessibile. Verificare che il nome dell'istanza sia corretto e che SQL Server sia configurato in modo da consentire connessioni remote. (provider: Named Pipes Provider, error: 40 - Impossibile aprire una connessione a SQL Server) Codice Errore: -2146232060
Registrato
DonZaucker74
Jr. Member
**

Karma: +4/-1
Scollegato Scollegato

Messaggi: 150


Mostra profilo
« Risposta #5 inserita:: Settembre 11, 2014, 12:57:36 »


L'errore è dovuto al fatto che il tuo datasource (se lo hai preso pari pari da msdn) è quello di esempio e non quello (tuo) reale:
Codice:
Data Source=(localdb)\v11.0;

Al posto di (localdb)\v11.0 devi mettere nome_server\nome_istanza della tua istanza (locale) di sql server.

Se usi il Management Studio copia la stringa che appare come "Server name" nella finestra di collegamento ad un server db.

dZ
Registrato
danyw3b
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 35

pk136zu@hotmail.com
Mostra profilo
« Risposta #6 inserita:: Settembre 12, 2014, 10:38:33 »

Anche copiando integralmente la stringa presente in "Stringa di connessione" mi viene fuori lo stesso errore!

Registrato
DonZaucker74
Jr. Member
**

Karma: +4/-1
Scollegato Scollegato

Messaggi: 150


Mostra profilo
« Risposta #7 inserita:: Settembre 12, 2014, 10:52:09 »


Uhm....non ci siamo.
Rileggi bene quello che ti ho scritto: non devi usare il datasource dell'esempio (localdb)\v.11.0 ma la tua istanza di sql server.

dZ
Registrato
danyw3b
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 35

pk136zu@hotmail.com
Mostra profilo
« Risposta #8 inserita:: Settembre 12, 2014, 11:14:33 »

Mi rendo conto che sto facendo una certa confusione quindi. Dove posso vedere il nome dell'istanza collegata al database "Daniele" che ho creato?
Registrato
DonZaucker74
Jr. Member
**

Karma: +4/-1
Scollegato Scollegato

Messaggi: 150


Mostra profilo
« Risposta #9 inserita:: Settembre 12, 2014, 11:32:53 »

Citazione
Dove posso vedere il nome dell'istanza collegata al database "Daniele" che ho creato?

Il nome dell'istanza dovresti averlo definito tu quando hai installato sql-server.
Comunque, come ti ho scritto nel post precedente, se usi Sql Server Management Studio trovi il nome dell'istanza nella finestra di collegamento al tuo motore di database (dove inserisci nome utente e password per intenderci).
Il nome dell'istanza lo devi inserire nella forma "nome_server\nome_istanza", ma è quello che trovi scritto nella finestra di SSMS che ti ho scritto prima.
Per farti capire: "(localdb)\v.11.0" indica nome_server=(localdb), nome_istanza=v.11.0. Fai attenzione che "localdb" tra parentesi indica la macchina locale, non è il nome vero del server db. Puoi utilizzare questa dicitura solo se lavori in locale; per non sbagliare io metterei comunque sempre il nome fisico del server.

Se hai altri dubbi/problemi chiedi pure.

dZ
Registrato
danyw3b
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 35

pk136zu@hotmail.com
Mostra profilo
« Risposta #10 inserita:: Settembre 12, 2014, 11:35:13 »

Vedo di installare Sql Server Management Studio, visto che non è presente sul sistema. Io non ho installato SQL Server, ha fatto tutto Visual Studio...
Registrato
DonZaucker74
Jr. Member
**

Karma: +4/-1
Scollegato Scollegato

Messaggi: 150


Mostra profilo
« Risposta #11 inserita:: Settembre 12, 2014, 11:54:08 »

Citazione
Io non ho installato SQL Server, ha fatto tutto Visual Studio...

Questa purtroppo non è una buona notizia.

Se non lo hai installato tu, non credo tu sappia quale nome è stato dato all'istanza, che utenza (username/password) serve per l'accesso, come è stato configurato Sql-Server per poter accettare connessioni esterne (remote).
E credo tu non sappia nemmeno che versione di sql-server ti abbia installato. Probabilmente sarà la versione Express, ma io comunque farei un controllo.

Tutti i dati che ti ho scritto prima servono a SSMS per collegarsi al tuo motore db, e di conseguenza anche al tuo software. Sono tutte configurazioni di protezione/sicurezza introdotte da sql-server dalla versione 2005 in poi: se non le configuri in modo corretto sia SSMS che il tuo software non si collegheranno mai al server db.
Oltre ad installare SSMS, ti consiglio di dare una lettura a qualche articolo che parli di come configurare sql-server per accedervi dall'esterno, dopo naturalmente aver capito che versione di sql-server hai installato.  Sorriso

In bocca al lupo!

dZ
Registrato
danyw3b
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 35

pk136zu@hotmail.com
Mostra profilo
« Risposta #12 inserita:: Settembre 12, 2014, 12:08:34 »

Installato quanto mi hai suggerito, ma il problema non si risolve, tanto che non so che dati inserire:



Ma non c'è un metodo per creare da zero un account e relativa istanza così che io possa conoscere TUTTI i dati?
Registrato
DonZaucker74
Jr. Member
**

Karma: +4/-1
Scollegato Scollegato

Messaggi: 150


Mostra profilo
« Risposta #13 inserita:: Settembre 12, 2014, 12:29:10 »

Citazione
Installato quanto mi hai suggerito, ma il problema non si risolve, tanto che non so che dati inserire

Come anticipato da me prima ....  Ghigno

Citazione
Ma non c'è un metodo per creare da zero un account e relativa istanza così che io possa conoscere TUTTI i dati?

Ci sono 2 metodi:
1) cerchi di capire cosa ti ha installato visual studio. In questo modo troverai nome server e nome istanza (ci sono sicuramente, solo che tu non li conosci). Avrai sicuramente nei tuoi programmi un "Sql-server Configuration Manager" dove trovi tutte queste informazioni, e puoi anche impostare le connessioni remote; ti anticipo che non è però semplicissimo nell'utilizzo, ti consiglio di dare un'occhiata a qualche tutorial prima di fare qualche pasticcio.
2) disinstalli sql-server e lo re-installi da capo. Microsoft rende disponibile la versione express, gratuita con qualche limitazione che però (immagino) a te per ora non importi più di tanto. Durante l'installazione "personalizzata", non quella classica, ti verranno chiesti tutti quei dati che poi serviranno sia a SSMS che al tuo software, compreso l'accesso con utenza sqlserver (username/password) e non windows. Fai attenzione ad ogni singolo step! Una volta installata l'istanza riporterai i dati che hai inserito sia in SSMS che nel tuo software. In rete trovi un sacco di tutorial che ti guidano nell'installazione personalizzata.

dZ


Registrato
danyw3b
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 35

pk136zu@hotmail.com
Mostra profilo
« Risposta #14 inserita:: Settembre 12, 2014, 01:04:03 »

Finalmente cel'ho fatta! Sorriso
Ho reinstallato SQL Server Server 2014 Express Edition e creato una nuova istanza... ora la connessione funziona dalla pagina ASP.NET e anche da SSMS!

Grazie Occhiolino
Registrato
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Copyright © 2017 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



powered by Simple Machines