Connessione SQL SERVER 2005 in C#

di il
8 risposte

Connessione SQL SERVER 2005 in C#

Salve, ho un problema,sto cercando di creare una connessione con SQL SERVER 2005 Express Edition e il C#.NET EXPRESS Edition,ma non ci riesco.

Ho installato l'SQL SERVER 2005 e in più anche MICROSOFT SQL SERVER MAnagement 2005 studio express!

Ho creato con S.S.M.2005 s.e. una tabella e ho anche fatto una query e tutto funziona correttamente,ma nel codice che io imposto così:
 
SqlConnection connessione = new SqlConnection("server=(local);database=Rubrica;"); 
SqlDataAdapter dataadapter = new SqlDataAdapter(); 
DataSet dataset = new DataSet(); 
dataadapter.SelectCommand = new SqlCommand(); 
dataadapter.SelectCommand.Connection = connessione; 
dataadapter.SelectCommand.CommandText = "SELECT * FROM dbo.rubrica"; 
dataadapter.SelectCommand.CommandType = CommandType.Text; 
connessione.Open(); 
dataadapter.Fill(dataset, "dbo.rubrica"); 
connessione.Close(); 
dataGridView1.DataSource = dataset; 
dataGridView1.DataMember = "dbo.rubrica"; 

[code] 

non mi funziona!! 
l'errore che mi da: 

Si è verificato un errore mentre si cercava di stabilire una connessione con il server. Quando ci si connette a SQL Server 2005, questo errore potrebbe essere provocato dal fatto che l'SQL Server non ammette connessioni remote sotto le impostazioni predefinite. (provider: Provider Named Pipes, error: 40 - Impossibile aprire una connessione a SQL Server)

Qualcuno così gentile potrebbe aiutarmi? 

Grazie

8 Risposte

  • Re: Connessione SQL SERVER 2005 in C#

     
    SqlConnection connessione = new SqlConnection("server=(local);database=Rubrica;"); 
    
    prova a sostituire 
    
    server=(local)
    
    con
    
    Data Source=[Nome del tuo PC]\SQLEXPRESS
    
    e 
    
    database=Rubrica
    
    con
    
    Initial Catalog=Rubrica 
    
    
    
    credo che manchi anche il tipo di autenticazione, se hai previsto quella di windows aggiungi
    
    Integrated Security=True
    
    in caso contrario
    
    User ID=[username ]
    Password=[password]
    
    ciao
  • Re: Connessione SQL SERVER 2005 in C#

    Allora io l'istanza l'ho chiamata FRANCESCO,ho anche previsto l'autenticazione di window;
    Quando io apro il l'sql Server Management Studio express mi da autenticazione al server= NOME-e una serie di lettere e numeri con la slash "\"e il nome dell'istanza "FRANCESCO"
    e' quella che devo mettere nel codice subito dopo "DataSource"?

    POi un'altra cosa Nome del tuo pc va messo tra parentesi quadre,perchè a me non accetta il simbolo dello slash
  • Re: Connessione SQL SERVER 2005 in C#

    sanfra ha scritto:


    Allora io l'istanza l'ho chiamata FRANCESCO,ho anche previsto l'autenticazione di window;
    Quando io apro il l'sql Server Management Studio express mi da autenticazione al server= NOME-e una serie di lettere e numeri con la slash ""e il nome dell'istanza "FRANCESCO"
    e' quella che devo mettere nel codice subito dopo "DataSource"?


    io non uso la verione express, ma sono abbastanza sicuro che non ti da la possibilità di scesciere il nome dell'istanza, che è imposta di default come "SQLEXPRESS". Se il pc su cui c'è SqlServer 2005 esxpress si chiama FRANCESCO, nella stringa di connessione devi mettere

    Data Source=FRANCESCO\SQLEXPRESS

    ed analogamente nella maschera di login di managment studio


    Nome Server -> FRANCESCO\SQLEXPRESS

    per quanto riguarda l'autenticazione, se hai usato quella di vindows aggiungi alla stringa di connessione

    Integrated Security=True


    ed analogamente nella maschera di login di managment studio

    Autenticazione -> Autenticazione di windows (sceglilo dalla lista)


    quindi ricapitolando supponendo che il tuo database si chiami DATABASEFRANCESCO, una stringa di connessione valida dovrebbe essere :

    Data Source=FRANCESCO\SQLEXPRESS;Initial Catalog=DATABASEFRANCESCO;Integrated Security=True

    sanfra ha scritto:


    POi un'altra cosa Nome del tuo pc va messo tra parentesi quadre,perchè a me non accetta il simbolo dello slash
    chi non ti accetta lo slash??


    ho capito dopo, in C# lo interpreta come inizio di una sequenza di escape, fai precedere l'asseginiazione della variabile dalla chiocciola. es:

    string cs=@"Data Source=FRANCESCO\SQLEXPRESS;Initial Catalog=DATABASEFRANCESCO;Integrated Security=True"

    cosi gli dici di ignorare le sequenza di escape

    ciao
  • Re: Connessione SQL SERVER 2005 in C#

    Innanzitutto ti volvelo ringraziare per il tuo interessamento al mio (forse stupido )problema,poi ho fatto come hai detto tu ma adesso quando arriva alla riga di codice connessione.Opne() mi da il seguente errore:


    Impossibile eseguire l'accesso per l'utente".L'utente non è associato a una connessione SQL server trusted

    Che cosa vuol dire?

    Un'altra cosa la mia istanza l'ho chiamata FRANCESCO,qunid io mi ritrovo due istanze(SQLEXPRESS e FRANCESCO)
  • Re: Connessione SQL SERVER 2005 in C#

    sanfra ha scritto:


    Innanzitutto ti volvelo ringraziare per il tuo interessamento al mio (forse stupido )problema,poi ho fatto come hai detto tu ma adesso quando arriva alla riga di codice connessione.Opne() mi da il seguente errore:


    Impossibile eseguire l'accesso per l'utente".L'utente non è associato a una connessione SQL server trusted

    Che cosa vuol dire?

    Un'altra cosa la mia istanza l'ho chiamata FRANCESCO,qunid io mi ritrovo due istanze(SQLEXPRESS e FRANCESCO)

    Questo è un po strano, nel senso che è tipico di quando l'utente con il qual ti sei loggato su windows non ha sufficienti privileggi per accedere al db. A questo punto dovresti dirmi, la creazione del db l'hai fatta con lo stesso utente con il quale fai il login in windows?? questo utente/i a quali ruoli appartengono??
  • Re: Connessione SQL SERVER 2005 in C#

    SI il db l'ho creato con lo stesso utente ([NOMU PC]\FRANCESCO).
    Però ti volevo dire che mi avevano detto di configurare anche l'SQL SERVER CONFIGURATION MANAGER e l'ho fatto,Quindi ho modificato il nodo Configurazione SQL NATIVE Client dove i figli di questo nodo sono Protocolli Client e alias;

    dove su Alias ho inserito il nome alias (conn),Server=Localhost;Protocollo TCP e Parametri 1433;
    SU Protocolli Client invece ho attivato sia il named Pipes che il TCP/IP e shared Memory
    come faccio a stabilire l'utente che ruoli ha?
  • Re: Connessione SQL SERVER 2005 in C#

    sanfra ha scritto:


    SI il db l'ho creato con lo stesso utente ([NOMU PC]\FRANCESCO).
    Però ti volevo dire che mi avevano detto di configurare anche l'SQL SERVER CONFIGURATION MANAGER e l'ho fatto,Quindi ho modificato il nodo Configurazione SQL NATIVE Client dove i figli di questo nodo sono Protocolli Client e alias;

    dove su Alias ho inserito il nome alias (conn),Server=Localhost;Protocollo TCP e Parametri 1433;
    SU Protocolli Client invece ho attivato sia il named Pipes che il TCP/IP e shared Memory
    come faccio a stabilire l'utente che ruoli ha?
    no, questo influenza soltanto il sistema per connettersi da remoto, ormai siamo dentro. i diritti degli utenti li vedi da managment studio nel treeview di sinistra alla voce

    Database -> Nome del tuo db -> Protezione ->Utenti.

    per essere sicuro, controlla che l'utente che usi sia presente e se non c'è aggiungilo manualmente

    ricorda che se sei in un dominio di utilizzare la forma nomedominio\nomeutente
  • Re: Connessione SQL SERVER 2005 in C#

    Ho risolto mancava un punto e virgola ;

    Grazie di tutto
Devi accedere o registrarti per scrivere nel forum
8 risposte