none
comment lire avec datareader un base de onnée sql avec vb 2010 RRS feed

  • Question

  • bonjour

     voila je commence à utiliser sql manager où j'ai créé un bd sql contenant 3 tables

     je voudrais lire  cette base  avec un datavieuw sur vb 2010. je n'arrive pas à faire la connexion entre vb et la base j'ai consulté divers tuto mais c'est  complexe qui peu m’expliquer ou m'aider à trouver un cours simple et pratique

    merci d'avance ce votre précieuse aide qui m'aide à progresser

    jeudi 13 août 2015 06:44

Réponses

  • Bonjour,

    vous déclarez la connexion en l'appelant "con" mais vous voulez l'utiliser avec le nom "connexion".

    De plus, vous tenter d'exécuter la requête avec un objet de type sqlconnection alors qu'il faut utiliser un objet de type sqlcommand.  Utilisez l'objet cmd déclarer en haut devrait mieux fonctionner.

    Il semble également qu'il y ait confusion entre sqlCommand et OleDbCommand.

    Pour terminer, il est préférable de poster votre code en utilisant la fonction "insérer du code " plutot qu'en image. Cela m'aurait permis de le corriger à la volée (même si le but n'est pas de coder pour vous...)...

    En espérant que cela vous dépanne

    Cordialement

    lundi 17 août 2015 10:13
  • D'après votre code, l'insertion se fait après un click sur le bouton => vous devriez mettre votre code dans cette méthode plutôt que dans Form1_activated. Tel que je le vois, votre code ne devrait même pas compiler.

    Voici les étapes

    1. ouvrez la connexion dans votre code con.Open() (attention à mettre dans un bloc try car l'ouverture peut aussi engendrer un problème si la DB n'est pas disponible)
    2. directement prévoir dans une clause Finaly la fermeture de la connexion con.Close (pas après le bloc try/catch comme vous l'avez fait)
    3. Qd la connextion est ouverte, instantiez la commande via cmd As New OleDbCommand(queryString, con) et pas l'objet Commande dont le type n'est pas d'ailleurs correct dans votre contexte.
    4. Executez la commande : cmd.ExecuteNonQuery();
    lundi 17 août 2015 11:37
  • Bonjour, SIMONGEORGES,

    Pour manipuler trois tables dans votre projet, une méthode convenable serait l’utilisation d'un DataSet. Un DataSet se compose d’un ou plusieurs DataTable. Je vous invite à consulter la procédure décrite dans l’article suivant et les articles liés:
    Création et modification de Datasets typés

    Plus précisemment, la connection avec la base de données est expliquée dans cet article:
    Comment : créer des TableAdapters

    Merci de nous tenir au courant.

    Cordialement,
    Dimitar

    vendredi 14 août 2015 06:41
    Modérateur

Toutes les réponses

  • Bonjour, SIMONGEORGES,

    Pour manipuler trois tables dans votre projet, une méthode convenable serait l’utilisation d'un DataSet. Un DataSet se compose d’un ou plusieurs DataTable. Je vous invite à consulter la procédure décrite dans l’article suivant et les articles liés:
    Création et modification de Datasets typés

    Plus précisemment, la connection avec la base de données est expliquée dans cet article:
    Comment : créer des TableAdapters

    Merci de nous tenir au courant.

    Cordialement,
    Dimitar

    vendredi 14 août 2015 06:41
    Modérateur
  • bonsoir déjà merci beaucoup

    je vais lire sérieusement ces articles et je reviendrais vers vous pour d'autres question

    bonne soirée

    vendredi 14 août 2015 20:32
  • bonjour

     j'ai lu les documents et voici le code que j'ai réussi a faire mais il y aune erreur à la fin

    je ne sais pas la corriger et pouvez m'aider  à fini le code pour lire ma base de données

    merci d'avance

    lundi 17 août 2015 06:49
  • voici mon code  il ne fonctionne pas correctement

    lundi 17 août 2015 09:37
  • Bonjour,

    vous déclarez la connexion en l'appelant "con" mais vous voulez l'utiliser avec le nom "connexion".

    De plus, vous tenter d'exécuter la requête avec un objet de type sqlconnection alors qu'il faut utiliser un objet de type sqlcommand.  Utilisez l'objet cmd déclarer en haut devrait mieux fonctionner.

    Il semble également qu'il y ait confusion entre sqlCommand et OleDbCommand.

    Pour terminer, il est préférable de poster votre code en utilisant la fonction "insérer du code " plutot qu'en image. Cela m'aurait permis de le corriger à la volée (même si le but n'est pas de coder pour vous...)...

    En espérant que cela vous dépanne

    Cordialement

    lundi 17 août 2015 10:13
  • Imports System
    Imports System.Data.OleDb
    Public Class Form1
    
    
        Dim con As New OleDb.OleDbConnection
        Dim cmd As New OleDb.OleDbCommand
        Dim sete As New DataSet
        Dim raw As DataRow
        Dim tab As New DataTable
    
     
    
        Private Sub Form1_Activated(sender As Object, e As System.EventArgs) Handles Me.Activated
            con.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=c:\COURSE8MOIS .mdb"
            con.Open()
    
            Try
    
            Catch ex As Exception
                MsgBox(ex, MsgBoxStyle.Information)
            End Try
            'FERMETURE DE LA BASE DE DONN2ES
    
            con.Close()
    
        End Sub
    
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim Requete As String = "Insert into COURSE8MOIS(PRODUIT, QTEouNB) values ('persil', '1')"
            Dim Commande As New SqlClient.SqlConnection(Requete, connexion)
    
    
    
    
        End Sub
    End Class
    

    voila mon code

    merci de m'aider

    lundi 17 août 2015 10:59
  • D'après votre code, l'insertion se fait après un click sur le bouton => vous devriez mettre votre code dans cette méthode plutôt que dans Form1_activated. Tel que je le vois, votre code ne devrait même pas compiler.

    Voici les étapes

    1. ouvrez la connexion dans votre code con.Open() (attention à mettre dans un bloc try car l'ouverture peut aussi engendrer un problème si la DB n'est pas disponible)
    2. directement prévoir dans une clause Finaly la fermeture de la connexion con.Close (pas après le bloc try/catch comme vous l'avez fait)
    3. Qd la connextion est ouverte, instantiez la commande via cmd As New OleDbCommand(queryString, con) et pas l'objet Commande dont le type n'est pas d'ailleurs correct dans votre contexte.
    4. Executez la commande : cmd.ExecuteNonQuery();
    lundi 17 août 2015 11:37
  • bonsoir merci beaucoup je vais erssayer je vous informerait de la suite

    merci encore

    lundi 17 août 2015 20:59
  • bonjour après des tatonements j’ai codé à nouveau mais cela donne rien pouvez vous m'aider merci

    voici le nouveau code

    Imports System
    Imports System.Data.OleDb
    
    
    Public Class Form1
    
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            'Connexion à une base de données MySQL
    
            Dim connString As String = "Server=127.0.0.1;Database=COURSE8MOIS;Uid=root;Pwd=;"
            Dim conn As OleDbConnection = New OleDbConnection
    
            conn.ConnectionString = connString
            conn.Open()
    
            'Exécuter une requête SELECT
            Dim dt As DataTable = New DataTable
            Dim da As New OleDbDataAdapter
            Dim ds As DataSet = New DataSet
            Dim sComm As New OleDbCommand
    
            sComm.CommandText = "SELECT * FROM COURSE8MOIS"
            sComm.Connection = conn
    
            da.SelectCommand = sComm
            da.Fill(ds)
    
    
    
            Dim irows As Integer = 0
            'Dim sComm As New OleDbCommand
    
            sComm.CommandText = "UPDATE COURSE8MOIS SET MonChamps = 1"
            sComm.Connection = conn
            irows = sComm.ExecuteNonQuery()
        End Sub
    End Class
    

    mardi 18 août 2015 09:22