Requete paramétrée + Oracledataadapter [Résolu]

Signaler
Messages postés
38
Date d'inscription
dimanche 24 décembre 2000
Statut
Membre
Dernière intervention
4 mars 2009
-
Messages postés
38
Date d'inscription
dimanche 24 décembre 2000
Statut
Membre
Dernière intervention
4 mars 2009
-
    Bonjour!

Voila mon problème : je cherche à utiliser un date sélectionner dans un combobox
dans ma requete afin de l'utiliser comme critère de recherche.
J'utilise oracle 8, vs2005 et windows xp pro.
Et bien ke j'ai essayé toute sorte de solution je n'arrive pas à en venir au bout,
donc voici ma requet  :

 Dim oAdapt As New OracleDataAdapter("SELECT XBQABR_0, XCODBANK_0, ..............." & _
            "FROM CLIP.XBANQUE, ............. " & _
            "WHERE
     TRUNC(SHIDAT_0,'YEAR')>" & ComboBoxVisual.SelectedIndex & "", oConnection)

ou encore
SHIDAT_0>ToDate('" & ComboBoxVisual.SelectedIndex & "',oConnection)
avec la date 31/12/2007 dans le combobox....

Ou encore
SHIDAT_0>ToDate('31/12/" & ComboBoxVisual.SelectedIndex  &"', oConnection)
en ne mettant que l'année dans le combobox...

je remplit le combobox manuellement comme suit:
ComboBoxVisual.Items.Add("2006")
OU
ComboBoxVisual.Items.Add("31/12/2007")

Merci d'avance pour vos réponses compatriotes développeurs!!

6 réponses

Messages postés
38
Date d'inscription
dimanche 24 décembre 2000
Statut
Membre
Dernière intervention
4 mars 2009

Bon bon bon !!!
après maintes et maintes recherche et abandons en séries, j'ai enfin trouver la solution qui, par ma foi, était VRAIMENT simple!

Du coup je vous la donne au cas ou une autre chausette tombe dans le même panneau que moi :

pour utiliser la variable sélectionnée :
       combobox.selectedItem
il suffisait de mettre le nom de la form parente (c'est-a-dire celle qui contient le combo) avant le nom de la combo comme tel :
       Form.combo.SelectedItem

Et voila ça passe comme sur des roulettes!!

Sur ce bonne chance à tous et rdv pour de new problème!!!   
Messages postés
38
Date d'inscription
dimanche 24 décembre 2000
Statut
Membre
Dernière intervention
4 mars 2009

en passant n'existerait-il pas un exemple similaire au
Oraclecommand1.Parameters.Add("vParam1",OracleType.VarChar,100).Value = textBox1.Text + "%";

mais pour le OracleDataAdapter??
Messages postés
38
Date d'inscription
dimanche 24 décembre 2000
Statut
Membre
Dernière intervention
4 mars 2009

Encore un nouvel essai en ajoutant :

Dim Annee As Date
Annee = ComboBoxVisual.SelectedValue
ou Annee = ComboBoxVisual.SelectedItem
    ou Annee = ComboBoxVisual.SelectedIndex
       ou Annee = ComboBoxVisual.SelectedText

Et : "AND SHIDAT_0>'" & Annee & "'", oConnection)

J'obtient l'erreur que j'obtient lorsque je suis sur d'avoir tout bien fait :
ORA-01847
day of month must be between 1 and last day of month

sachant que la totalité de mon combobox est rempli comme suit :
        ComboBoxVisual.Items.Add("31/12/2006")
        ComboBoxVisual.Items.Add("31/12/2007")
        ComboBoxVisual.Items.Add("31/12/2008")
        ..................................................................
        ComboBoxVisual.Items.Add("31/12/2015")

Merci de vous pencher sur mon cas...car j'arriv au dernier round et j'ai pris
plusieurs down dans la face....
Messages postés
38
Date d'inscription
dimanche 24 décembre 2000
Statut
Membre
Dernière intervention
4 mars 2009

un petit up pour dire que je n'ai toujours pas régler mon problème.

Même en essayant de contourner le problème avec un dataview je n'arrive pas à faire fonctionner le tri sur la date...
Pour info voila ce que j'ai fais :
Dim oDataview As New DataView
oDataview.Table = oDataset.Tables("oTable")
oDataview.RowFilter = "SHIDAT_0 >' " & ComboBoxVisual.SelectedItem & "'"
Messages postés
38
Date d'inscription
dimanche 24 décembre 2000
Statut
Membre
Dernière intervention
4 mars 2009

J'ai fini par faire marcher mon dataview mais IMPOSSIBLE de faire passer un paramètre par l'intermédiaire de :
oDataview.RowFilter = "SHIDAT_0 > '" & ComboBoxVisual.SelectedItem.ToString & "'"

un message d'erreur survient :
la référence d'objet n'est pas définie à une instance d'objet...
je suis vraiment au bout du rouleau!!!!
Messages postés
38
Date d'inscription
dimanche 24 décembre 2000
Statut
Membre
Dernière intervention
4 mars 2009

après moultes recherches, être passé à autre chose, je rvien sur mon problème,
je pense que je n'arrive pas à prendre la valeur sélectionner dans ma form1 et de l'envoyer dans ma form2 ou il y a le code pour pour afficher mon datagrid, ce qui est la finalité de ces codes!
Je vous prie donc de m'aider si l'envie vous en prend!!

pour info voila le code de ma form2 sachant que j'ai rempli ma combobox de cette façon : ComboBoxVisual.Items.Add("31/12/2007") dans ma form1.

Form2 :

Imports System.Data
Imports System.Data.DataTable
Imports System.Windows.Forms.DataGridView
Imports System.Windows.Forms.Form
Imports System.Data.OracleClient

Public Class Visualisation

    Public Sub Visualisation_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.Load

        Dim oDataset As DataSet = New DataSet("oDataset")

        Try

            Dim oConnection As OracleConnection ...

            oConnection.Open()

            Dim oAdapt As New OracleDataAdapter("SELECT XBQABR_0, XCODBANK_0, XBQNAM_0, XCODPRO_0, CLIP.XDOSCLI.XCOMDAT_0, CLIP.XDOSCLI.XDCNUM_0, " & _
            "XREFCLI_0, XDLIVDEM_0, DLVDAT_0, XBATDRET_0, SHIDAT_0, XQTEDEM_0, QTY_0, XMONTANT_0, NETWEI_0, CLIP.SDELIVERY.SDHNUM_0 " & _
           "FROM CLIP.XBANQUE, CLIP.SDELIVERY, CLIP.SINVOICED, CLIP.XDOSCLI, CLIP.XDOSCLI2 " & _
           "WHERE CLIP.XBANQUE.XBQNUM_0=CLIP.SDELIVERY.XBQNUM_0 " & _
           "AND CLIP.SDELIVERY.XDCNUM_0=CLIP.XDOSCLI.XDCNUM_0 " & _
          "AND CLIP.SDELIVERY.XDCNUM_0=CLIP.XDOSCLI2.XDCNUM_0 " & _
           "AND CLIP.SINVOICED.XDCNUM_0=CLIP.XDOSCLI.XDCNUM_0 " & _
           "AND CLIP.SDELIVERY.SDHNUM_0=CLIP.SINVOICED.SDHNUM_0 " & _
            "AND SHIDAT_0>To_Date('31/12/2006', 'DD/MM/YYYY')", oConnection)
           
            Dim oTable As DataTable = New DataTable()

            oAdapt.Fill(oTable)

            oConnection.Close()
          
            'Dim oDataview As DataView = New DataView(oTable)
            'oDataview.Table = oDataset.Tables("oTable")
            'oDataview = oTable.DefaultView
            'oDataview.Sort = "SHIDAT_0"
            'oDataview.RowFilter = "SHIDAT_0 > " & ComboBoxVisual.SelectedItem & "'"
            'oDataset.AcceptChanges()
            'ComboBox1.DataSource = ComboBoxVisual.SelectedItem

            'Remplissage du datagrid avec la table
            DataGridViewVisual.DataSource = oTable

            'DataGridViewVisual.DataSource = oDataview

            ' Vérif si erreur
        Catch ex As Exception
            MsgBox("Erreur !!! " & ex.Message)
        End Try

    End Sub

End Class