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 :

[VB][SQL Server]Début difficiles


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Janvier 2006
    Messages : 250
    Par défaut [VB][SQL Server]Début difficiles
    Bonjour à tous ,

    Mes questions vont être 'débiles' pour certains mais j'ai parcourus par mal de forum tuto ou autre et rien n'éclaire ma lanterne :

    Je me lance dans VB (Visual basic 2008) et (MSSQL server) , a ce jour j'ai déployer une base MSSQL en locale mais qui va migré vers un serveur (local), et par la suite sur une VM.

    Mon application (Gestionnaire d'immobilisation technologique) est déstinée a plusieurs profil différents donc pour me connecter je fait un formulaire avec les champs suivants :
    Nom , Mot de passe , Serveur , Nom de la base (facultatif)

    Pour le moment j'ai fait ceci :

    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
    43
    44
     Private Sub GPI_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
     
            Me.txt_UserName.Text = "User"
            Me.txt_Password.Text = "Test12/"
            Me.txt_BaseServerName.Text = "UserTest\SQLEXPRESS"
            Me.txt_BaseName.Text = "GPI"
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     
            Dim maCnx As New ADODB.Connection()
            Dim maCmd As New Command
     
            ' Variables de connection
            Dim ConnectionString As String
            Dim ActiveConnection As String
     
            Dim Password As String
            Dim User As String
            Dim Database As String
            Dim Server As String
     
            Password = Me.txt_Password.Text
            User = Me.txt_UserName.Text
            Database = Me.txt_BaseName.Text
            Server = Me.txt_BaseServerName.Text
     
     
            With maCnx
                On Error GoTo ErreurFatale
                .ConnectionTimeout = 30
                .Provider = "SQLOLEDB"
                .ConnectionString = "Trusted_Connection=yes;" & _
                                    "Data source = " & Server & ";" & _
                                    "Initial catalog = " & Database & ";"
                '"User ID = " & User & ";" & _
                .Open()
            End With
     
    ErreurFatale:
            MsgBox("Erreur N° :" & Err.Number & vbLf & Err.Description)
            End
        End Sub
    1.Seulement je ne n'arrive pas à me connecter à la base il me retourne l'erreur 0 mais avec aucun message d'erreur (juste Erreur : 0 ).

    2.Au cas ou ma connexion serai active comment faire pour afficher un message box du type :

    If connexion = true then
    msgbox('Connecté')
    End if

    Je me remet donc à vos lumières pour éclairer ce premier obstacle .
    Merci pour tout

  2. #2
    Membre émérite
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Par défaut
    Bonjour,

    Je te conseille d'utiliser la bibliotheque SqlClient pour SqlServer plutôt que OleDB.

    Dans ta chaine de connexion tu n'indques pas les informations userid et password pour accéder à la base de données.

    Si ta base de données permet de se connecter en mode mixte (c'est à dire via les identifiants sql -userid, password - et via la securité intégré windows), tu peux te connecter sans renseigner les identifiants sql.
    Je suppose que c'est ce que tu voulais faire... donc vérifie que ta base de donnée le permet.

    Si ça ne fonctionne pas, tu peux toujours essayer de remplacer "TrustedConnection=yes" par "Integrated Security=SSPI"

  3. #3
    Membre émérite
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Par défaut
    Désolé, j'ai lu en diagonale ton post et je me rends compte que j'ai pas vraiment répondu à ton problème...
    En ce qui concerne SqlClient, ça tient toujours, je te conseille d'utiliser cette bibliothèque.
    Apparement, ta connexion s'effectue correctement.
    Le message d'erreur vient du fait qu'il n'y a pas de rupture avant ErreurFatale:
    D'ailleurs, je te conseille l'utilisation des blocs Try Catch pour gérer ce genre d'exception
    Code vb.net : 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
    43
    44
    45
    46
    47
    48
    49
     
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     
        Dim maCnx As New ADODB.Connection()
        Dim maCmd As New Command
     
        ' Variables de connection
        Dim ConnectionString As String
        Dim ActiveConnection As String
     
        Dim Password As String
        Dim User As String
        Dim Database As String
        Dim Server As String
        Try 
            Password = Me.txt_Password.Text
            User = Me.txt_UserName.Text
            Database = Me.txt_BaseName.Text
            Server = Me.txt_BaseServerName.Text
     
            With maCnx
                On Error GoTo ErreurFatale
                .ConnectionTimeout = 30
                .Provider = "SQLOLEDB"
                .ConnectionString = "Trusted_Connection=yes;" & _
                                    "Data source = " & Server & ";" & _
                                    "Initial catalog = " & Database & ";"
                '"User ID = " & User & ";" & _
                ' Ajout d'un Try Catch pour tester l'ouverture de la connexion
                 Try
                    .Open()
     
                    ' Si j'arrive ici, je suis connecté
                    Bln_Connect = True
     
                 Catch ex_Open As Exception
                    ' Ici je ne suis pas connecté
                    Bln_Connect = False
     
                    ' Renvoi l'exception
                    Throw
                 End Try
            End With
     
        Catch ex As Exception
            ' Affichage du message d'exception
            MsgBox(ex.ToString)
        End Try
    End Sub

  4. #4
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Janvier 2006
    Messages : 250
    Par défaut
    Merci pour ta réponse je me replonge dedans demain matin ... En attendant merci pour tes conseils.

  5. #5
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Janvier 2006
    Messages : 250
    Par défaut
    Merci pour la fonction Try Catch que je ne connais pas encore, en ce qui concerne le provider SQL Client tu parles de ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SQL Native Client ODBC Driver
    Standard security
     
    Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
    Are you using SQL Server 2005 Express? Don't miss the server name syntax Servername\SQLEXPRESS where you substitute Servername with the name of the computer where the SQL Server 2005 Express installation resides.
    Soucre : http://www.connectionstrings.com/?carrier=sqlserver2005

  6. #6
    Membre émérite
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Par défaut
    Je parle juste des objets de gestion de données

    Ici tu utilises les objets ADO :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim maCnx As New ADODB.Connection()
    Dim maCmd As New Command
    


    Mon conseil était utilise des objets SqlClient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim maCnx As New SqlClient.SqlConnection()
    Dim maCmd As New SqlClient.SqlCommand
    


    Tu peux faire une recherche sur le net pour connaitre les différences entre ADODB et SqlClient

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

Discussions similaires

  1. Pb migration Access / SQL server
    Par yoyo dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 25/04/2005, 10h39
  2. Quel outil choisir pour un développement SQL-Server ?
    Par Mouse dans le forum Débats sur le développement - Le Best Of
    Réponses: 23
    Dernier message: 12/08/2003, 06h23
  3. [Kylix] sql server & kylix
    Par fehmitn dans le forum EDI
    Réponses: 1
    Dernier message: 23/08/2002, 19h44
  4. Backup BD SQL Server
    Par Ethmane dans le forum Administration
    Réponses: 3
    Dernier message: 07/06/2002, 00h42

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