Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme sqldatareader avec sql multi-table

Sujet résolu
    14 novembre 2017 à 22:58:57

    Bonjour, je ne comprend pas mon erreur. Je n'arrive pas a faire la "select" de l'une de mes tables et faire l'affichage.

    Private Sub TB_NB_KeyDown(sender As Object, e As KeyEventArgs) Handles TB_NB.KeyDown
    
            Dim cmd As New SqlCommand("SELECT CB_PRODUIT.CODE_BARRE AS Expr1, Permacon.*, Techo_Bloc.*
    FROM CB_PRODUIT INNER JOIN Permacon ON CB_PRODUIT.CODE_BARRE = Permacon.CODE_BARRE INNER JOIN Techo_Bloc ON CB_PRODUIT.CODE_BARRE = Techo_Bloc.CODE_BARRE WHERE CB_PRODUIT.CODE_BARRE = '" + TB_NB.Text + "'", CON)
            If e.KeyCode = Keys.Enter Then
                If TB_NB.Text = "" Then
                    MsgBox("Entrer un numéro!")
                Else
                    Try
                        CON.Open()
                        Dim READER As SqlDataReader = cmd.ExecuteReader()
                        If READER.HasRows Then
                            While READER.Read()
                                TB_DESCF.Text = READER("DESC_F").ToString()
                                TB_DESCA.Text = READER("DESC_A").ToString()
                                TB_UNITE.Text = READER("UNITE").ToString()
                                TB_COUTU.Text = READER("COUT_UNITAIRE").ToString()
                                TB_MB.Text = READER("MARGE_BRUTE").ToString()
                                TB_MCXS.Text = READER("MCX_S").ToString()
                                TB_KITS.Text = READER("KIT_S").ToString()
                                TB_SRANG.Text = READER("S_RANG").ToString()
                                TB_QTEC.Text = READER("QTE_CUBE").ToString()
                                TB_POIDS.Text = READER("POIDS").ToString()
                                TB_VOLUME.Text = READER("VOLUME").ToString
                                TB_UNITEA.Text = TB_UNITE.Text
                                TB_PRIX1.Text = READER("PRIX_1").ToString()
                                TB_PRIX3.Text = READER("PRIX_3").ToString()
                                TB_ALPHA.Text = READER("ALPHA").ToString()
                                TB_FOURNI.Text = READER("FOURNISSEUR").ToString()
                                TB_MAJEUR.Text = READER("MAJ").ToString()
                                TB_INTER.Text = READER("INT").ToString()
                                TB_MINEUR.Text = READER("MIN").ToString()
                                TB_STATUS.Text = READER("STATUS").ToString()
                                TB_USER.Text = READER("USERNAME").ToString()
                                TB_MOD.Text = READER("MODUSER").ToString()
                                ''
                                'READONLY
                                TB_NB.ReadOnly = True
                                TB_DESCF.ReadOnly = True
                                TB_DESCA.ReadOnly = True
                                TB_UNITE.ReadOnly = True
                                TB_COUTU.ReadOnly = True
                                TB_MB.ReadOnly = True
                                TB_MCXS.ReadOnly = True
                                TB_KITS.ReadOnly = True
                                TB_QTEC.ReadOnly = True
                                TB_SRANG.ReadOnly = True
                                TB_POIDS.ReadOnly = True
                                TB_VOLUME.ReadOnly = True
                                TB_PRIX1.ReadOnly = True
                                TB_PRIX2.ReadOnly = True
                                TB_PRIX3.ReadOnly = True
                                TB_ALPHA.ReadOnly = True
                                TB_FOURNI.ReadOnly = True
                                TB_MAJEUR.ReadOnly = True
                                TB_INTER.ReadOnly = True
                                TB_MINEUR.ReadOnly = True
                                TB_STATUS.ReadOnly = True
                            End While
                            TB_CNB.Focus()
                        Else
                                TB_DESCF.Focus()
                        End If
                    Catch ex As Exception
                    Finally
                        cmd.Dispose()
                        CON.Close()
                    End Try
                End If
            ElseIf e.KeyCode = Keys.F4 Then
                If TB_NB.Text = Text Then
                    TB_NB.Clear()
                Else
                    Close()
                End If
            End If
        End Sub


    Merci d'avance!

    -
    Edité par Drachour 14 novembre 2017 à 22:59:34

    • Partager sur Facebook
    • Partager sur Twitter
      15 novembre 2017 à 15:11:13

      Je ne suis pas sûr que tous les SGBDR aiment des "Permaco,.*" comme 'noms' de colonne.

      En plus, moi, j'utiliserais pas cette antiquité de SqlCommand, en plus en faisant des bidouilles d'SQL dynamique vulnérable au premier crétin essayant de l'SQL Injection, juste pour voir.

      Utilisez un ORM comme Entity Framework ou NHibernate, ou tout du moins des DataSet+DataAdapter avec des requêtes paramétrées.

      C'est plus simple, plus fiable, plus souple, etc...

      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        15 novembre 2017 à 15:55:14

        D'accord merci pour le renseignement.
        • Partager sur Facebook
        • Partager sur Twitter

        Probleme sqldatareader avec sql multi-table

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown