IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Quelles sont les étapes d'une connexion vers un serveur [Débutant]


Sujet :

VB.NET

  1. #1
    Membre actif
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 597
    Points : 204
    Points
    204
    Par défaut Quelles sont les étapes d'une connexion vers un serveur
    Bonjour forum
    Comme préfixé, je suis débutant en VB net.
    J'ai l'habitude lors des créations d'applications monoposte, de mettre la base de données dans le dossier source de l'application.
    J'ai décidé de gérer un projet énorme de notre structure.
    Pour la réalisation de ce projet, j'utilise comme base de données SQL serveur au lieu de Access.

    L'objectif du projet:
    toutes les structures rattachées qui sont dans les environs ( quartiers et villages) auront une même base de données avec la structure principale( l'inspection ).L'on pourra travailler hors connexion et transmettre les enregistrements lorsque la connexion est établie. De ce fait, la structure principale aura toutes les données statistiques de la circonscription.

    Question :
    1-Quelles sont les étapes de la connexion vers un serveur. Pour l'instant SQL serveur a configuré mon bureau comme étant le serveur Local.
    2- Quels sont les serveurs adéquats pour la récupération des données de la base de données afin de communiquer vers les autres utilisateurs ( communication bidirectionnelle).
    2- Si je dois déplacer le projet vers un autre ordinateur vu que la base de données n'est pas dans le dossier source, comment je m'y prends ?

    Merci à vous

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 126
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 126
    Points : 1 636
    Points
    1 636
    Par défaut
    1- ça veut dire que SQL Server est installé en local sur ton PC, au final, si tu ne veux pas que ce soit ton PC qui serve de serveur de données, il faudra l'installer sur un serveur (machine) accessible des utilisateurs
    2- pas compris la question (mais peut-être lié à ma réponse au 1 finalement)
    3- voir aussi ma réponse 1 du coup (mais tu peux exporter les données (et structure de ta base de travail) de ton serveur local sous forme de fichier sql (le fichier contiendra l'ensemble des requêtes pour reformer la structure de la base et y recopier les données)
    Aussi, il faudra définir les utilisateurs autorisés à se connecter à ta base (plusieurs façons de faire: utilisateur du serveur SQL, utilisateur spécifique du domaine, groupe(s) utilisateurs du domaine, ... )

    Tu pourrais stocker dans une base locale (SQLite/access) ou sur un serveur de la structure quand tu es hors connexion, et dès que tu as la connexion, faire une transfert vers la base centrale.

    Rapproche toi des administrateurs systèmes/réseaux/datas, ils pourront sans doute te donner aussi des infos/conseils puisqu'ils seront aussi concernés par ce projet.

    Mais, là, pour le moment, aucune relation avec du VB.Net, (on se connectera à la base via une chaine de connexion à définir).

  3. #3
    Membre actif
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 597
    Points : 204
    Points
    204
    Par défaut
    Merci pour la réponse...
    Je vais me servir de votre réponse et essayer aussi de chercher du côté de la connexion au serveur.

  4. #4
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 422
    Points : 2 181
    Points
    2 181
    Par défaut
    Bonjour,
    avant de ce lancer il faut bien définir les taches à exécuter???

    1. les ajouts
      il faut définir un identifiant unique qui ne pourra pas ce retrouver en doublon l'hors de la synchronisations.
    2. les modification
    3. les suppressions



    Si vous n'avez pas de serveur SQL installé localement et souhaitez créer une base de données SQL Server locale sans installer SQL Server Express, vous pouvez utiliser SQL Server Compact Edition (SQL CE). Voici comment procéder :Téléchargez et installez SQL Server Compact Edition (SQL CE) à partir du site officiel de Microsoft.

    Nom : Sans titre.png
Affichages : 73
Taille : 41,9 KoNom : Sans titre.png
Affichages : 73
Taille : 19,0 Ko
    Nom : Sans titre.png
Affichages : 77
Taille : 305,9 KoNom : Sans titre.png
Affichages : 74
Taille : 238,6 Ko

    téléchargez et exécutez SqlLocalDB.msi ainsi que SSMS-Setup-FRA.exe
    Nom : Sans titre.png
Affichages : 71
Taille : 51,3 Ko


    1. Ouvrez SQL Server Management Studio (SSMS) :
      Lancez SSMS sur votre ordinateur.
    2. connectez-vous à l'instance LocalDB :
      Dans la fenêtre de connexion de SSMS, spécifiez (LocalDB)\MSSQLLocalDB comme nom du serveur.
      Choisissez le type d'authentification approprié (Windows ou SQL Server) et fournissez les informations d'identification nécessaires.
      Cliquez sur "Connect" pour établir une connexion avec l'instance LocalDB.
    3. Administrez l'instance LocalDB avec SSMS :
      Une fois connecté, vous pouvez gérer l'instance LocalDB comme toute autre instance de SQL Server à l'aide de SSMS.
    4. Créez des bases de données, exécutez des requêtes, attachez des fichiers MDF, et effectuez d'autres tâches administratives.
    5. Attachez votre fichier MDF à l'instance LocalDB :
      Si vous avez un fichier MDF que vous souhaitez utiliser, vous pouvez attacher ce fichier à l'instance LocalDB en utilisant SSMS. Cliquez avec le bouton droit sur "Bases de données" dans l'Explorateur d'objets, sélectionnez "Attacher une base de données", puis suivez les étapes pour attacher votre fichier MDF.

    Il est important de noter que LocalDB est conçu pour des scénarios légers de développement, et il est généralement utilisé pour des applications locales ou individuelles. Si vous avez des besoins plus importants, vous pourriez envisager d'utiliser une édition complète de SQL Server.




    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim connectionString As String= "Provider=SQLOLEDB;Data Source= (LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Chemin\Vers\Votre\Fichier\NomDeLaBaseDeDonnees.mdf;Integrated Security=True"

    (Microsoft SQL Server Database File), peux utiliser la classe SqlSyncProvider pour les deux côtés (local et distant). Voici un exemple en VB.NET:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Imports System.Data.SqlClient
    Imports Microsoft.Synchronization.Data.SqlServer
     
     
    Module Module1
        Sub Main()
            Dim localConnectionString As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=YourLocalPath\YourLocalDatabase.mdf;Integrated Security=True;User Instance=True"
            Dim remoteConnectionString As String = "YourRemoteConnectionString"
     
     
            ' Configuration de la synchronisation
            Dim syncOrchestrator As New Microsoft.Synchronization.Data.SyncOrchestrator()
            syncOrchestrator.LocalProvider = New SqlSyncProvider("YourLocalProvider", localConnectionString)
            syncOrchestrator.RemoteProvider = New SqlSyncProvider("YourRemoteProvider", remoteConnectionString)
            syncOrchestrator.Direction = Microsoft.Synchronization.Data.SyncDirection.Bidirectional
     
     
            ' Synchronisation
            Dim syncStats As Microsoft.Synchronization.Data.SyncOperationStatistics = syncOrchestrator.Synchronize()
     
     
            ' Affichage des statistiques de synchronisation
            Console.WriteLine("Total Changes Uploaded: " & syncStats.UploadChangesTotal.ToString())
            Console.WriteLine("Total Changes Downloaded: " & syncStats.DownloadChangesTotal.ToString())
            Console.WriteLine("Complete!")
        End Sub
    End Module

    pour une synchronisation bidirectionnelle réussie, il est important que la structure des bases de données locales et distantes (représentées par les fichiers MDF) soit cohérente. Les schémas, tables, colonnes et contraintes doivent être identiques des deux côtés.
    La synchronisation utilise ces structures pour assurer la cohérence des données lors des opérations d'insertion, de mise à jour et de suppression. Des différences dans la structure peuvent entraîner des erreurs de synchronisation ou des comportements inattendus.
    les schémas et les donnée doivent s'alignés entre le fichier MDF local et la base de données distante pour garantir une synchronisation fiable. Utiliser des outils comme SQL Server Management Studio (SSMS) peut aider à comparer et ajuster les structures si nécessaire.

    Dans le contexte de plusieurs utilisateurs insérant localement sur leurs bases de données respectives, la synchronisation pourrait potentiellement conduire à des conflits d'identifiants auto-incrémentés lorsqu'ils transfèrent les données vers le serveur central.


    mettre en place un mécanisme d'auto-incrémentation personnalisé en utilisant des déclencheurs (triggers) dans SQL Server. Voici comment procéder pour obtenir des identifiants tels que 'RD000001', 'RD000002', 'LP000001', etc. RD et LP initial de Utilisateurs
    Supposons une table nommée MaTable avec une colonne ID à auto-incrémentation classique et une colonne IdentifiantPersonnalise rempli avec ces identifiants personnalisés. Voici un exemple de déclencheur qui pourrait être utilisé :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    CREATE TRIGGER tr_MaTable_Insert
    ON MaTable
    AFTER INSERT
    AS
    BEGIN
        SET NOCOUNT ON;
     
     
        DECLARE @UserIdPrefix NVARCHAR(2)  -- Personnalise selon l'utilisateur
        SET @UserIdPrefix = 'RD'  -- Exemple: Utilisateur 'RD'
     
     
        UPDATE MaTable
        SET IdentifiantPersonnalise = @UserIdPrefix + RIGHT('000000' + CAST(ID AS NVARCHAR(6)), 6)
        FROM MaTable
        INNER JOIN inserted ON MaTable.ID = inserted.ID;
    END;
    Cela suppose que la table MaTable a une colonne ID qui est auto-incrémentée.
    En ce qui concerne la définition de cette colonne comme valeur par défaut, ton peut généralement le faire lors de la création de la table. Par exemple :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TABLE MaTable
    (
        ID INT IDENTITY(1,1) PRIMARY KEY,
        IdentifiantPersonnalise NVARCHAR(8) DEFAULT '',
        -- Autres colonnes...
    );
    dans cet exemple, IdentifiantPersonnalise est défini comme ayant une valeur par défaut de chaîne vide (''), et le déclencheur que j'ai montré précédemment s'assurera qu'elle est mise à jour avec le format spécifié lors de l'insertion d'une nouvelle ligne.
    à adapter ces exemples en fonction de la structure réelle de ta table et des besoins spécifiques.

    Code Sql à tester : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    --je cree une sequance qui sicrémente de 1
    CREATE SEQUENCE Table1_Sequence
        AS INT
        START WITH 1
        INCREMENT BY 1;
     
     
    -- le champ ID auto Icriment le UserName de la machine + 000001,2,3 etc.
    CREATE TABLE Table1 (
        ID VARCHAR(50) PRIMARY KEY DEFAULT (SUSER_SNAME() + '_' + Right('000000' + CAST(NEXT VALUE FOR Table1_Sequence AS VARCHAR(50)),6)),
        T VARCHAR(50) DEFAULT NULL
        );
    -- je teste mon Auto Incrément!
        insert into[dbo].Table1 ([T]) values('toto');
     
     
        select  * from Table1;
    il est important de vérifier, à l'ouverture de l'application, l'accès au serveur pour envoyer les donné local au serveur ; ainsi qu'a la fermeture pour récupéré en local les information du serveur avant fermeture de l'application!
    Code Serveur SQL Disponible OUI/NON : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Imports System.Net.NetworkInformation
    Module Module1
        Sub Main()
            Dim serverAddress As String = "adresse_ip_ou_nom_serveur"
     
     
            If PingServer(serverAddress) Then
                Console.WriteLine("Le serveur SQL Server est accessible.")
            Else
                Console.WriteLine("Le serveur SQL Server est inaccessible.")
            End If
        End Sub
     
     
        Function PingServer(serverAddress As String) As Boolean
            Try
                Dim pingSender As New Ping()
                Dim reply As PingReply = pingSender.Send(serverAddress)
     
     
                If reply.Status = IPStatus.Success Then
                    Return True
                Else
                    Return False
                End If
            Catch ex As Exception
                Console.WriteLine("Erreur lors du ping : " & ex.Message)
                Return False
            End Try
        End Function
    End Module

    Notez que vous pourrez toujours place la base.mdf dans le répertoire source de votre projet car c'est votre base local.

    Si vous souhaitez permettre à l'utilisateur de configurer les paramètres du serveur SQL lors de la première utilisation de l'application, vous pouvez utiliser des boîtes de dialogue pour saisir ces informations. Voici un exemple de code qui utilise une boîte de dialogue simple pour obtenir les informations du serveur à partir de l'utilisateur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Imports System.Data.SqlClient
     
    Public Class Form1
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            ' Vérifier si les paramètres du serveur ont déjà été configurés
            If My.Settings.ServeurSQLConfigured = False Then
                ' Afficher la boîte de dialogue de configuration du serveur
                ConfigurerServeurSQL()
     
                ' Marquer les paramètres du serveur comme configurés
                My.Settings.ServeurSQLConfigured = True
                My.Settings.Save()
            End If
     
            ' Utiliser la chaîne de connexion configurée
            UtiliserConnexion()
        End Sub
     
        Private Sub ConfigurerServeurSQL()
            ' Afficher la boîte de dialogue pour configurer le serveur SQL
            Dim configForm As New ConfigurationServeurSQLForm()
            configForm.ShowDialog()
        End Sub
     
        Private Sub UtiliserConnexion()
            ' Utiliser la chaîne de connexion configurée pour accéder à la base de données
            Dim connectionString As String = My.Settings.ServeurSQLConnectionString
     
            Using connection As New SqlConnection(connectionString)
                Try
                    ' Ouvrir la connexion
                    connection.Open()
     
                    ' Exécuter des opérations sur la base de données ici
     
                Catch ex As Exception
                    ' Gérer les erreurs de connexion
                    MessageBox.Show("Erreur de connexion : " & ex.Message)
                End Try
            End Using
        End Sub
    End Class
    Dans cet exemple, la méthode `ConfigurerServeurSQL` affiche une boîte de dialogue personnalisée (vous devez créer cette boîte de dialogue) où l'utilisateur peut saisir les informations de connexion au serveur SQL. Une fois que les paramètres ont été configurés, la propriété `ServeurSQLConfigured` est marquée comme vraie, et la chaîne de connexion est sauvegardée dans les paramètres de l'application.

    N'oubliez pas de créer la boîte de dialogue personnalisée (`ConfigurationServeurSQLForm` dans cet exemple) pour la saisie des informations du serveur SQL.

    Pour préconfigurer `My.Settings` avant la publication de votre application VB.NET, vous pouvez accéder aux paramètres de l'application et définir les valeurs par défaut pour les paramètres que vous souhaitez préconfigurer. Suivez ces étapes :

    1. Ouvrez votre projet VB.NET dans Visual Studio.

    2. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur votre projet et sélectionnez "Propriétés".

    3. Allez dans l'onglet "Application".

    4. Cliquez sur le bouton "Paramètres" sous la section "Paramètres".

    5. Vous verrez la liste des paramètres que vous avez définis dans `My.Settings`. Modifiez les valeurs par défaut de ces paramètres selon vos besoins.

    6. Assurez-vous que ces paramètres sont marqués comme "Application" et non comme "Utilisateur". Les paramètres d'application ont une portée globale, tandis que les paramètres utilisateur sont spécifiques à chaque utilisateur.

    7. Enregistrez vos modifications.

    Lorsque vous publiez votre application, ces valeurs par défaut seront incluses dans l'application, et les utilisateurs auront ces valeurs lorsqu'ils exécuteront l'application pour la première fois.

    Assurez-vous de bien comprendre les implications de stocker des informations sensibles (comme des chaînes de connexion) dans les paramètres de l'application, surtout si elles sont incluses directement dans le code source ou dans un fichier de configuration. Dans certains cas, il peut être préférable de demander à l'utilisateur de saisir ces informations au moment de l'installation ou lors de la première exécution de l'application.

  5. #5
    Membre actif
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 597
    Points : 204
    Points
    204
    Par défaut
    Merci à vous.
    Je réponds à Thumb Down... Je n'ai pas été notifié pour le dernier message mais c'est grâce à votre message posté sur l'autre discussion.
    Je suivrai attentivement vos recommandations et vous revenir sur la continuité de mon apprentissage.

    Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quelles sont les solutions existantes pour uploader une visite virtuelle vers Google map
    Par Marketingalternative dans le forum Interfaces Graphiques en Java
    Réponses: 0
    Dernier message: 13/02/2018, 11h25
  2. Réponses: 8
    Dernier message: 03/03/2016, 15h23
  3. [XL-2007] Quelle sont les nombres dans une plage leures sommes equale un nombre connue
    Par iliesss dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 18/09/2012, 20h16
  4. Réponses: 7
    Dernier message: 18/10/2008, 12h23
  5. Réponses: 4
    Dernier message: 13/09/2006, 14h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo