VB2010 Applicazione con Db Sql Express da più postazioni

di il
3 risposte

VB2010 Applicazione con Db Sql Express da più postazioni

Allora ragazzi, cerco di essere più breve possibile, nell' esporvi il mio problema che per molti di voi risulterà banale, ma perdonatemi, dopo innumerevoli tentativi non riesco a trovare la soluzione.

Ho sviluppato un applicazione che inizialmente si basava su un DB Sql Compact, ma, dopo essere incappato in un problema abbastanza fastidioso, ho ricreato lo stesso DB tramite l' Ide di Visual Studio utilizzando SQL Express(Installato insieme a visual studio).
Il punto è questo: io voglio che la mia applicazione sia utilizzata contemporaneamente da 2 o più pc in rete e che tutti i pc lavorino sullo stesso Database. Come devo configurare l' applicazione e/o i pc in questione per ottenere questo risultato? Come dovrei configurare la ConnectionString?

Presumo che debba installare un istanza di SqlExpress sul pc nel quale risiederà il database ma è necessario installarne una anche negli altri pc?

Ringrazio subito chi vorrà aiutarmi.

3 Risposte

  • Re: VB2010 Applicazione con Db Sql Express da più postazioni

    Ciao,

    l'istanza di sqlsever la installerai nel pc che fungerà da server, l'applicazione installata nei pc client dovrà puntare al server.

    In pratica invece di avere il server in locale sulla stessa macchina su cui gira il client, ci sarà una macchina che fa da server dove installerai l'istanza sqlserver e i pc client su cui installerai il tuo programma.

    Per far questo:

    1) configurare il protocollo di collegamento su sql server impostandolo a TCP/IP;

    2) modificare il data source della stringa di connessione facendolo puntare al nomemacchina o al numero IP del server. Ricordati anche di specificare la porta in cui il server è in ascolto.

    3) configurare eventuali firewall, ma se è all'interno della stessa struttura potrebbe non essere necessario

    Per un esempio di stringhe: , ce ne sono di tutti i tipi per tutti i gusti, tu prenditi quelle relative al server installato.

    Ciao
  • Re: VB2010 Applicazione con Db Sql Express da più postazioni

    Ciao Lucius,
    Ti ringrazio per l' aiuto, nel caso specifico io ho questa stringa di connessione:

    "Integrated Security=SSPI;Persist Security Info=False;User ID='';Initial Catalog=mmm.mdf;Data Source=192.168.1.25;Initial File Name=''"

    che nel pc su cui sto sviluppando funziona correttamente ma se vado su un secondo pc non va, quando dici che va specificata la porta alla quale connettersi intendi dire che dove ho "Data Source=192.168.1.25" devo aggiungere ":1433"?

    Perchè se dal pc cliente lancio il comando "telnet 192.168.1.25:1433" la connessione riesce senza problemi.
  • Re: VB2010 Applicazione con Db Sql Express da più postazioni

    1) Mi confermi che il pc di sviluppo che ha installato visual studio non è il server che ha installato sql server vero? oppure è lo stesso?

    2) Hai provato a disattivare completamente il firewall dell'altro pc client?

    3) Mi sembra che la stringa così come è strutturata indichi il tipo di connessione Trusted, cioè il pc client si logga al server con le credenziali di windows del client, ma per far questo chiaramente il client deve essere riconosciuto dal server. Il pc client è stato autenticato a livello user nel server?

    4) Prova ad usare questa stringa, naturalmente devi inserire un utente autenticato nel server:
    Data Source=192.168.1.25,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;
    5) Se non cambiata, il numero di porta standard di sqlserver è la 1433, va inserita con la virgola dopo l'indirizzo IP come nel punto 4;

    6) Soprattutto qual'è il codice di errore che ti ritorna?
    
            Try
                ' Apre la connection conn
                conn.Open()
                ' Se la connection è OK darà 1
                MessageBox.Show(conn.State)
            Catch ex As SqlClient.SqlException
                ' Se la connection non va a buon fine ritorna la descrizione
                MessageBox.Show(ex.Message)
                ' Ritorna l'errore del Server
                MessageBox.Show(ex.ErrorCode)
            Catch ex As Exception
                ' Errore generico
                MessageBox.Show(ex.Message)
            Finally
                conn.Close()
            End Try
    
Devi accedere o registrarti per scrivere nel forum
3 risposte