Strnga di connessione a Sql Server 2014

venerdì 31 ottobre 2014 - 17.24

jekisi Profilo | Senior Member

Salve a tutto il forum, avrei la seguente domanda:

Per quanto riguarda la connessione ad un db Access faccio:

Public ConnString As String = "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & Form4.PercorsodbTextBox.Text
Public Cn As New OleDb.OleDbConnection(ConnString)
Public dr As OleDb.OleDbDataReader
Public cmd As OleDb.OleDbCommand
Public sql As String




Addesso vorrei connettermi ad un db di Sql Server 2014 in locale

Come dovrebbe cambiare la striga?



Distinti Saluti

Fabio Messina

0v3rCl0ck Profilo | Guru

Ciao, qui trovi tutte le connection string del mondo:

http://www.connectionstrings.com/

prova intanto con questa, che usa il tuo utente di windows con cui sei loggato per effettuare l'autenticazione a sql server:

Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;



Michael Denny | Microsoft Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.net
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic

pieroalampi Profilo | Expert

Public ConnString As String = "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & Form4.PercorsodbTextBox.Text
Public Cn As New OleDb.OleDbConnection(ConnString)
Public dr As OleDb.OleDbDataReader
Public cmd As OleDb.OleDbCommand
Public sql As String

bisogna vedere cosa hai nella PercorsodbTextBox per prima cosa e poi il tutto non è completo, forse è meglio che ci spieghi cosa vuoi fare,
ti metto qui sotto un esempio di connessione ad un server sql ed una routine di aggiornamento:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
la stringa di connessione la trovi li dove ti è stato già suggerito perché cambia da db a db
ciao
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA

jekisi Profilo | Senior Member

Ciao, io ho fatto così e funziona, potete dirmi se la cosa è corretta anche per voi?

Dim con As System.Data.SqlClient.SqlConnection
Dim cmd As System.Data.SqlClient.SqlCommand
Dim dr As System.Data.SqlClient.SqlDataReader
Dim sqlstr As String

con = New SqlClient.SqlConnection("Data Source=fabiointernatio\sqlexpress;Initial Catalog=Aziendale 2015;Integrated Security=True;Pooling=False")


Adesso, quello che vorrei fare e quello di collegarmi al db mettendo il suo percorso in una textbox e leggere il percorso dalla text.

Per i database di Access io faccio:

Public ConnString As String = "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & Form4.PercorsodbTextBox.Text

Per quanto rigurda Sql, questo codice
con = New SqlClient.SqlConnection("Data Source=fabiointernatio\sqlexpress;Initial Catalog=Aziendale 2015;Integrated Security=True;Pooling=False")

come dovrebbe cambiare di preciso?

Se mi date un vostro indirizzo e - mail vi spiego meglio cosa vorrei fare facendovi vedere come faccio con i db di access

Distinti Saluti

Fabio Messina






pieroalampi Profilo | Expert

Ciao, io ho fatto così e funziona, potete dirmi se la cosa è corretta anche per voi?

Dim con As System.Data.SqlClient.SqlConnection
Dim cmd As System.Data.SqlClient.SqlCommand
Dim dr As System.Data.SqlClient.SqlDataReader
Dim sqlstr As String

invece di scrivere ogni volta Dim con As System.Data.SqlClient.SqlConnection metti in testa al codice, prima del public class

Imports System.Data.SqlClient

cosi dovrai scrivere al posto di "Dim con As System.Data.SqlClient.SqlConnection" solo Dim con As SqlConnection" e questo vale per tutte le dichiarazioni riguardanti System.Data.SqlClient.

Per i database di Access io faccio:

Public ConnString As String = "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & Form4.PercorsodbTextBox.Text


per la stringa di connessione che non sto a guardare più di tanto ti dico immediatamente che da come la scrivi sembra che tu debba prelevare parte della stringa di connessione da un form che non è quello aperto, la cosa è valida solo se il form4 è aperto altrimenti non essendo popolato riceverai un errore, se invece la textbox si trova nello stesso form scrivi semplicemente PercorsodbTextBox.Text omettendo form4 perché è sottointeso.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA

jekisi Profilo | Senior Member

Di fatto la form4 è aperta, anche in modo invisibile, con Opacity su 0

Ho fatto un video veloce per mostrare come faccio per i database di Access, che zippato pesa 4.60 MB ma qui non me lo fa allegare.

Se mi date un vostro indirizzo e-mail ve lo invio, per farvi capire cosa vorrei fare.

Distinti Saluti

Fabio Messina

pieroalampi Profilo | Expert

domani guardo e poi ti dico, anche se non credo che impostare la stringa di connessione in un form a 0 opacity sia il mezzo migliore, puoi utilizzare altre risorse molto più semplici e dinamiche, ma in ogni caso rimando a domani il tutto
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA

jekisi Profilo | Senior Member

Per quanto riguarda la stringa, guardando qua e là, ho provato a fare:

con = New SqlClient.SqlConnection("Data Source=fabiointernatio\sqlexpress;Initial Catalog=" + Form2.TextBox1.Text + ";Integrated Security=True;Pooling=False")


Da premettere che la form2 è aperta.

Mi restituisce questo errore:

Impossibile aprire il database "C:\Program Files (x86)\Microsoft SQL Server\MSSQL.1\MSSQL\Data\aziendale.mdf" richiesto dall'account di accesso. Accesso non riuscito. Accesso non riuscito per l'utente 'FabioInternatio\Fabio International'.

Qualche consiglio?



Distinti Saluti

Fabio Messina

pieroalampi Profilo | Expert

riguarda i permessi dell'utente
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA

jekisi Profilo | Senior Member

Guardando in giro cosa dovrei guardare di preciso,

- stringa connessione senza user e password di sql server
- protocollo tcp disabilitato
- permessi di scrittura non gestiti
- eccezioni firewall non gestite


Devo controllare queste cose?

pieroalampi Profilo | Expert

dall'errore che ricevi sembra che non esista un account di accesso o che non sia assegnato a qual db, quindi credo tu debba creare l'account e assegnarlo.
per il resto la stringa di connessione è integrata con una text box, la dovresti controllare in fase di debug e magari inviarci i dati che ricevi in debug.
i permessi non credo abbiano molta rilevanza perché prima di sapere se puoi leggere o scrivere devi entrare e tu non riesci proprio ad entrare.
per il firewall se dovessi avere qualche dubbio disabilitalo e basta ma poi a che pro se tutto è sulla stessa macchina? se è su macchina diversa db e software controllo il log del firewall e da li vedi se hai indirizzato bene le porte e i protocolli.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5