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 :

connexion SQL Server en VB


Sujet :

VB.NET

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 15
    Par défaut connexion SQL Server en VB
    Bonjour,

    Je sais qu'il existe pas mal de post sur ce sujet, mais malgré tout je n'arrive pas à faire ce que je souhaite.

    Je souhaite pouvoir me connecter à une base de données à partir de VB. Je précise que je suis débutant dans ce language.
    Je me suis inspiré de cet exemple.

    J'ai tenté ceci, mais il me sort une erreur dès le début, avec "sub ou function non défini".

    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
     
    Sub Connexion()
    ' Exemple de gestion d'une connexion
     
    Imports System
    Imports System.Data.SqlClient
    Imports System.IO
     
    Namespace ExempleAdoNetVBnet
     
        public class SQLConnexion
     
            public static void Main()
     
                Dim strConnexion As String = "Data Source=localhost; Integrated Security=SSPI;" & "Initial Catalog=Northwind"
                Try
     
                    Dim oConnection As SqlConnection = New SqlConnection(strConnexion)
                    oConnection.Open()
                    Console.WriteLine ("Etat de la connexion : " & oConnection.State)
                    oConnection.Close()
     
                catch e as Exception
     
                    Console.WriteLine ("L'erreur suivante a été rencontrée :" & e.Message)
                End Try
            End Sub
        End Class
    End Namespace
    End Sub

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Bonjour,

    L'article date de 2003 et n'est vraiment pas à jour. public static void Main() n'existe pas (ou plus).
    Je te conseille de regarder le cours ici :
    - https://plasserre.developpez.com/cou...bases-donnees1
    - https://plasserre.developpez.com/cou...bases-donnees2
    - https://plasserre.developpez.com/cou...bases-donnees3

    Et un petit tuto ici : https://msdn.microsoft.com/fr-be/library/jj943772.aspx

    Pour la chaîne de connexion tu as : https://www.connectionstrings.com/sqlconnection/

    Sinon ton projet c'est quoi? Un "Winform" ou un "console"? Voir : https://plasserre.developpez.com/cou...forms1#LVIII-A

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 15
    Par défaut
    Bonjour,

    Merci pour la réponse.

    J'ai parcouru les cours qui sont bien fait.

    Cependant, je m'attaque peut-être à quelque chose de trop lourd pour moi par rapport à mes connaissances dans ce langage.

    Je continue à bloquer dès le début où j'ai le message "sub ou function non définie" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sub Connexion()
    Imports System
    Imports System.Data.SqlClient
    J'ai coché les référence "Microsoft ActiveX Data Objects 6.1 Librairy" et "System".

    Mon projet serait (si j'arrive à avancer en tout cas) de créer un "Winform".
    Le but serait de l'implanter dans un logiciel de supervision PCVue (qui peut gérer le VBA).
    J'aimerais créer une interface qui permettrait d'aller choisir à l'aide de liste déroulante et d'aller lire dans telle ou telle table de la base SQL et afficher les valeurs des variables choisies dans un tableau, puis pouvoir les exporter sous Excel.

  4. #4
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Il va effectivement falloir, si vous voulez progresser dans ce langage, que vous suiviez le cour complet.

    Les Imports doivent toujours être les premières lignes d'un fichier, ensuite viennent les namespaces, puis les class ou modules, dans ces class ou modules les propriétés et enfin les fonctions (sub ou function).

    Donc dans votre cas le début de projet doit ressembler à ceci si vous avez fait un projet console :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Imports System
    Imports System.Data.SqlClient
    Module Module1
     
        Sub Main()
            ' CODE ICI
        End Sub
     
        Sub Connexion()
            ' CODE ICI
        End Sub
    End Module
    Courage et bonne lecture : https://plasserre.developpez.com/cours/vb-net/

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 15
    Par défaut
    Bonjour,

    Merci pour vos réponses.
    Au final, galérant pas mal, j'ai utilisé l'enregistreur de macro pour arriver à ce que je souhaitais faire, et en passant par Microsoft Query.

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
     
    Sub Valid()
    '
    ' ImportsVar1 Macro
    '
     
     
       'Déclaration de la variable
       Static NomServer As Variant
       'Attribution d'une valeur à la variable
       NomServer = "Win10dev"
       MotDePasse = "*******"
       NomBDD = "Projet test 1_Database01"
       Colonne1 = "Chrono" 'Champs 1
       Colonne2 = "TS"
       Colonne3 = "Name"
       Colonne4 = "Description"
       Colonne5 = "Value"
       'Affichage de la valeur de ma_variable dans une MsgBox
       'MsgBox NomServer & ", " & NomBDD & ", " & Colonne1 & ", " & Colonne2 & ", " & Colonne3
     
     
    'si presence d'un tableau, alors l'effacer, sinon, aller à la fin.
    If Range("B7") = "" Then
        GoTo Continuer
    End If
     
    EffacerTableau:
        Range("Tableau_Lancer_la_requête_à_partir_de_win10dev[#Headers]").Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.ClearContents
     
     
    Continuer:
     
        With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array( _
            "ODBC;DRIVER=ODBC Driver 13 for SQL Server;SERVER=NomServer;UID=admin;PWD=MotDePasse;Trusted_Connection=No;APP=2007 Microsoft Office system;WSID=NOMPC" _
            ), Array("POR045;")), Destination:=Range("$B$7")).QueryTable
            .CommandText = Array( _
            "SELECT TrendTable01.Chrono, TrendTable01.TS, TrendTable01.Name, TrendTable01.Description, TrendTable01.Value" & Chr(13) & "" & Chr(10) & "FROM ""Projet test 1_Database01"".dbo.TrendTable01 TrendTable01" _
            )
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .PreserveColumnInfo = True
            .ListObject.DisplayName = "Tableau_Lancer_la_requête_à_partir_de_win10dev"
            .Refresh BackgroundQuery:=False
        End With
        Columns("C:C").Select
        Selection.NumberFormat = "dd/mm/yyyy hh:mm:ss"
        Columns("B:B").Select
        Selection.NumberFormat = "0"
        Columns("B:B").EntireColumn.AutoFit
        Columns("C:C").EntireColumn.AutoFit
        Columns("E:E").EntireColumn.AutoFit
        Columns("F:F").EntireColumn.AutoFit
     
        Range("Tableau_Lancer_la_requête_à_partir_de_win10dev[#Headers]").Select
        Range(Selection, Selection.End(xlDown)).Select
        With Selection
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlBottom
            .WrapText = False
            .Orientation = 0
            .AddIndent = False
            .IndentLevel = 0
            .ShrinkToFit = False
            .ReadingOrder = xlContext
            .MergeCells = False
        End With
        Range("A1").Select
    End Sub
    Ceci me renvoi un tableau avec mes valeurs tel que je le désirais. Un tableau que je peux ensuite exploiter pour afficher des graphiques.

    Ce que je souhaiterais maintenant serait de pouvoir mettre en variable les informations de connexion afin de pouvoir plus facilement réutiliser ce code pour d'autres projets.
    Lorsque je fais un MsgBox, il me donne bien les bonnes informations. Par contre, lorsque je met le nom des variables en lieu et place des la commande permettant de lancer la connexion, il me ressort le nom de la variable et non sa valeur. Je ne comprends pas pourquoi.

    La suite de mon projet sera de faire une liste déroulante par exemple qui afficherait les noms des tables, et une liste affichant des champs de tables SQL afin de les mettre en variables puis lancer la requête à partir des tables et champs choisis.

    En espérant que mon message soit suffisamment clair.

Discussions similaires

  1. connexion sql server sécurisé
    Par liliprog dans le forum ASP.NET
    Réponses: 21
    Dernier message: 08/06/2005, 20h31
  2. [DEBUTANT] Connexion à SQL Server
    Par jesus144 dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/03/2005, 12h38
  3. [C#] Problème de connexion sql server 2000
    Par rabbiwan dans le forum ASP.NET
    Réponses: 8
    Dernier message: 22/12/2004, 16h21
  4. Connexion à SQL Server avec ASP
    Par ayobo dans le forum ASP
    Réponses: 3
    Dernier message: 25/05/2004, 17h06
  5. Connexion SQL Server
    Par Bart51 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/05/2004, 10h49

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