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 :

Placer des données de SQL serveur dans une variable


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 66
    Points : 41
    Points
    41
    Par défaut Placer des données de SQL serveur dans une variable
    Bonjour à tous,

    Jusqu'à présent j'ai surtout utilisé des SQLDataSource reliées à des gridview pour gérer des données. Mais là, j'ai besoin de lire les données et les placer dans des variables "String". Malheureusement, il ne semble pas y avoir de moyen de faire cela avec une SqlDataSource.

    Quelle est la meilleure approche pour effectuer ceci?

  2. #2
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    bonjour,
    peux-tu être plus précis sur ton problème?
    @+SuperBouly

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 480
    Points : 357
    Points
    357
    Par défaut
    En fait pour répondre précisément au titre de ton topic (mais en lisant le détail, ta question ne me semble pas entièrement comprise dans le titre...), pour placer un enregistrement SQL lu en base de données dans une variable il y a plusieurs méthodes... j'en vois au moins 3 :

    - placer tes données dans une DataTable
    - placer tes données dans un DataSet (qui contient en fait des DataTable)
    - lire tes données avec un "reader"

    Voici un exemple avec un reader :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Dim strConnexion As String = "la chaîne de connexion"
    Dim oConnexion As New System.Data.OleDb.OleDbConnection(strConnexion)
    Dim oCommand As New System.Data.OleDb.OleDbCommand()
    oCommand.CommandText = "SELECT nom, prenom FROM client"
    Dim myDataReader As System.Data.OleDb.OleDbDataReader
    myDataReader = oCommand.ExecuteReader()
    While myDataReader.Read
        Dim maVariable As String
        maVariable = myDataReader.Item("nom")
    End While

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 66
    Points : 41
    Points
    41
    Par défaut
    merci pour ton aide The eye, cet exemple semble pourra me permettre de faire ce que je désire. Par contre, je reçois un message d'erreur que je ne comprend pas... voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
            Dim strConnexion As String = "Server=ECAMLMW091;Database=BestEffort;user=req_priority;password=Er1c550n;Max Pool Size=400"
            Dim oConnexion As New System.Data.OleDb.OleDbConnection(strConnexion)        
    Dim oCommand As New System.Data.OleDb.OleDbCommand()
            oCommand.CommandText = "SELECT [GSDC_Name], [CA_Name], [PA_Name], [Availibility_ID], [Date of entry] AS Date_of_entry, [Username] FROM [VIEWNeedUpdate]"
            Dim myDataReader As System.Data.OleDb.OleDbDataReader
            myDataReader = oCommand.ExecuteReader()
            While myDataReader.Read
                Dim maVariable As String
                maVariable = myDataReader.Item("[username]")
            End While
    et voici le message d'erreur: An OLE DB Provider was not specified in the ConnectionString. An example would be, 'Provider=SQLOLEDB;'.

    Cette erreur apparaît sur le code en gras.

    Que manque-t-il à ma connection string? J'ai déjà utilisé cette dernière pour écrire des données sans problèmes...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 480
    Points : 357
    Points
    357
    Par défaut
    il te manque le provider dans ta chaîne de connexion.

    Ajoute "Provider=SQLOLEDB;" au début de ta chaîne de connexion

    Note : OLEDB étant génrique il a besoin de connaître le provider, ce qui n'est pas le scas si tu utilises l'objet SqlClient

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 66
    Points : 41
    Points
    41
    Par défaut
    en fait j'ai essayé cela, mais ensuite j'obtiens l'erreur suivante:

    ExecuteReader: Connection property has not been initialized.

    J'ai donc fait un peu de recherche et j'ai essayé d'ajouter ce code pour le régler:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            oCommand.Connection = oConnexion
            oConnexion.Open()
    et là j'obtiens ces erreurs que je ne sais pas comment corriger:

    Invalid authorization specification
    Invalid connection string attribute

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 480
    Points : 357
    Points
    357
    Par défaut
    Ta chaîne de connexion ma parrait bizare. Tu l'as trouvé ou?

    Essayes ça...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Dim strConnexion As String = "Provider=SQLOLEDB;Data Source=ECAMLMW091;Initial Catalog=BestEffort;User ID=req_priority;password=Er1c550n"
    Dim oConnexion As New System.Data.OleDb.OleDbConnection(strConnexion)  
    oConnexion.open()      
    Dim oCommand As New System.Data.OleDb.OleDbCommand()
    oCommand.connection = oConnexion
     
    oCommand.CommandText = "SELECT [GSDC_Name], [CA_Name], [PA_Name], [Availibility_ID], [Date of entry] AS Date_of_entry, [Username] FROM [VIEWNeedUpdate]"
    Dim myDataReader As System.Data.OleDb.OleDbDataReader
    myDataReader = oCommand.ExecuteReader()
    Do While myDataReader.Read
        Dim maVariable As String
        maVariable = myDataReader.Item("[username]")
    Loop

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 480
    Points : 357
    Points
    357
    Par défaut
    Question qui a son intérêt : tu essais de te connecter à quelle type de base de données? (ORACLE, SqlServer, ACCESS...)

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 66
    Points : 41
    Points
    41
    Par défaut
    la connection semble fonctionner, mais j'obtiens une erreur "IndexOutOfRangeException" sur la variable [username] dans le Do While.

    Il s'agit d'une base de données SQL server.

    Et pour la chaîne de connection, elle est récupérée de l'ancien créateur du site web sur lequel je travaille.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 480
    Points : 357
    Points
    357
    Par défaut
    T'as essayé sans les crochets?

    PS: ton ancienne chaîne de connection me semblait plutôt ressembler a une chaîne ORACLE...

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 66
    Points : 41
    Points
    41
    Par défaut
    ouf, j'ai presque oublié de te remercier pour ton aide, The eye. Tout fonctionne maintenant, et oui j'ai compris que les crochets causaient le problème. Merci pour tout!

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 480
    Points : 357
    Points
    357
    Par défaut
    Pas de problème

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

Discussions similaires

  1. Insérer des données sur plusieurs lignes dans une seule en SQL
    Par nathantahiti dans le forum Développement
    Réponses: 1
    Dernier message: 03/08/2011, 10h47
  2. Montage d'un dump sql serveur dans une base de donnée
    Par kfmystik dans le forum Administration
    Réponses: 8
    Dernier message: 09/04/2009, 08h06
  3. Réponses: 7
    Dernier message: 21/03/2007, 23h28
  4. Réponses: 1
    Dernier message: 01/09/2006, 20h13
  5. [VB]stocker des données de pages web dans une base
    Par tofito dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 15/02/2006, 11h02

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