begin process at 2012 05 27 21:01:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

WebForms

 > 

Autre

 > 

Datasource / commande select / paramètres


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Datasource / commande select / paramètres

mardi 17 novembre 2009 à 14:19:49 | Datasource / commande select / paramètres

c4sp

Bonjour,

Je débute en asp.net. J'ai commencé un site web tout en asp. Sur une page j'ai créé un formulaire de recherche.
Les resultats sont afficher dans un gridview lié à une base de donnée oracle.

Je veux me servir des textbox et autres dropdownlist du formulaire de recherche comme des paramètre de la commande select de ma source de donnée.

Je me suis servit de ce tuto : http://www.aspfr.com/codes/CONSTRUCTION-SELECTCOMMAND_36050.aspx

Si j'utilise un paramètre (ex nom) la requete marche, si j'utilise 2, 3 ou plus de paramètres sa bugue et je ne sais pas pourquoi.

(Tout est en code behind a la demande de mon patron.)

Voici un extrait du code.

Code Visual Basic :
Protected Sub BtnRechercher_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnRechercher.Click
        Oim()
    End Sub

Protected Sub Oim()
        Dim Sc As String = ""
        Dim io As Integer = 0

        Me.OracleDataSource1.SelectParameters.Clear()
        Sc = "SELECT * FROM eleve"
        If DDLciv.SelectedValue <> -1 Then
            Me.OracleDataSource1.SelectParameters.Add("civ", DDLciv.SelectedValue)
            Sc = Sc & " WHERE ((civ = ?))"
            Me.OracleDataSource1.SelectParameters("civ").DefaultValue = DDLciv.SelectedValue
            io = 1
        End If
        If Not TBnom.Text = String.Empty Then
            Me.OracleDataSource1.SelectParameters.Add("nom", TBnom.Text)
            If io = 0 Then
                Sc = Sc & " WHERE ((nom = '?'))"
                io = 1
            Else
                Sc = Replace(Sc, "))", ") AND (nom = '?'))")
            End If
            Me.OracleDataSource1.SelectParameters("nom").DefaultValue = TBnom.Text
        End If
        If Not TBprenom.Text = String.Empty Then
            Me.OracleDataSource1.SelectParameters.Add("prenom", TBprenom.Text)
            If io = 0 Then
                Sc = Sc & " WHERE ((prenom = '?'))"
                io = 1
            Else
                Sc = Replace(Sc, "))", ") AND (prenom = '?'))")
            End If
            Me.OracleDataSource1.SelectParameters("prenom").DefaultValue = TBprenom.Text
        End If
Me.OracleDataSource1.SelectCommand = Sc
    End Sub


le code aspx correspondant :

Code ASP.NET :
<asp:SqlDataSource ID="OracleDataSource1" 
        ConnectionString="<%$ ConnectionStrings:******* %>" 
        ProviderName="<%$ ConnectionStrings:*******.ProviderName %>" 
         OnSelecting="BtnRechercher_Click"
        runat="server" >
    </asp:SqlDataSource>


Est ce que vous auriez une idée ?

Merci d'avance

c4sp
mercredi 18 novembre 2009 à 12:26:10 | Re : Datasource / commande select / paramètres

Mayzz

Membre Club
Réponse acceptée !

Salut,

A première vue ta requête peut généré 2 fois une clause where (si prénom et nom sont renseignés en même temps) mais ce n'est pas cela qui cloche, ce qui ne vas pas c'est tes paramètres :

Me.OracleDataSource1.SelectParameters.Add("nom", TBnom.Text)
If io = 0 Then
Sc = Sc & " WHERE ((nom = '?'))"

Par contre, je ne suis pas un spécialiste Oracle, essaye simplement cela :

Me.OracleDataSource1.SelectParameters.Add("nom", TBnom.Text)
If io = 0 Then
Sc = Sc & " WHERE ((nom = @nom))"

je pense que lors ce que tu as une requête du type :

SELECT * FROM eleve WHERE ((civ = ?) AND (nom = ?))

Le serveur ne sait identifier seule quel paramètre correspond, par défaut il les prendra dans l'ordre, par contre ne met pas tes "?" entre apostrophes ('?'), car il les conciderera comme une chaîne de texte et non un paramètre.

Je te le redis, je ne suis pas expert oracle ni en syntaxe SQL, ce n'est que de simples supposition à tester.

++ Mayzz.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
mercredi 18 novembre 2009 à 15:28:46 | Re : Datasource / commande select / paramètres

c4sp

Bonjour,

Tu n'es peux etre pas un expert en la matière, mais tu cherches a m'aider et j'apprécie.

Concernant la syntaxe de la requete je dois bien utiliser des " ? " car je me connecte via un pilote ODBC.

J'ai suivi ton conseil, j'ai enlevé les apostrophes qui entouraient les " ? " et sa marche.

J'aurai du y penser.
Merci




Cette discussion est classée dans : end, code, sc, if, oracledatasource1


Répondre à ce message

Sujets en rapport avec ce message

[ASP.NET]5VB.NET]Recharger une page après un evenement click [ par chrisisis ] Bonjour, Je vais commencer par expliquer la structure de ma page, qui m'est imposée et que j'ai réalisée :Webform1.aspx : un UserControl uc_form qui c lire et executer un fichier sql [ par jesusonline ] Bonjour, je crée un fichier .sql comme cela Public Sub EcrireRequete(ByVal sSql As String, ByVal Reset As Boolean) Directory.SetCurrentDi Afficher une chaine de caractère dans un moteur de recherche en asp [ par Bidossessi ] BonjourJ'ai un formulaire dans lequel je dois renseigner un certain nombre de variables comme le nom du domain de server que je dois utiliser, identif recordset asp et boucle do [ par tempus75 ] bonjour a tous, j'ai un leger probleme avec mon code, il doit representer graphiquement (avec un tableau) une salle de theatre et afficher en rouge le postbackurl et paging [ par casa51 ] fileupload dans un web user control [ par babyboo1107 ] Bonjour j'aimerai utiliser un fileupload mais je suis dans un user controle alors lorsque je clic sur le ok il repasse dans la fct page_load de ce con Probleme de declenchement d'evenements multiples [ par jubourbon ] Bonjour,   <p class="MsoNormal" st Intranet ASP.NET - Différence de réaction entre URL lancée dans IE et URL identique lancée depuix WORD [ par keogus ] Bonjour à tous ! Bon je poste ici parce que là je vois pas ou [^^happy13]. Je vais essayer de détailler clairement la situation : J'ai un intranet q UPLOAD des fichiers pdf d'un poste client vers un serveur en asp [ par madhatterx ] Bonjour, J'ai trouvé plusieurs codes pour "uploader" des fichiers d'un client vers un serveur en ASP, j'ai fait ma cuisine avec tout ça et j'obtiens introspection et macro [ par cuicui6669 ] Bonjour, Je sais pas trop par où commencer pour expliquer mon problème, donc j'espère que ce sera clair. Je suis en train de coder une macro sous VS


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales