Paramètre SQL

Signaler
Messages postés
29
Date d'inscription
jeudi 23 février 2006
Statut
Membre
Dernière intervention
20 juillet 2006
-
Messages postés
29
Date d'inscription
jeudi 23 février 2006
Statut
Membre
Dernière intervention
20 juillet 2006
-
Bonsoir,

Je gère une Galerie de Photos.

Ma page principale récapitule les différents thèmes photographiques avec une photo pour chaque theme

En cliquant sur un theme je vais vers une page avec les miniatures des photos du thème concerné en récupérant dans l'URL l' Id par le code :

Public

Sub Page_Load(
ByVal sender
As
Object,
ByVal e
As EventArgs)

Dim test
As
Integer

Dim sql_string
As
String

test = Request.QueryString(

"theme")

End
SubJe souhaite faire une reqête SQL sur ma base MySQL et récupérer les champs concernant.le thème choisi.

Comment faire.

Mercid'avance

29 réponses

Messages postés
154
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
22 août 2007

difficile de répondre à ta question...
c'est quoi le problème:
- la connection à la base
- la requête à faire (avec le shéma de la table c'est plus facile)
- autre chose..
Messages postés
29
Date d'inscription
jeudi 23 février 2006
Statut
Membre
Dernière intervention
20 juillet 2006

Mon problème est de faire la requête Select en mettant en clause where la variable "test"


WHERE photoID = test


 
Messages postés
154
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
22 août 2007

sql_string = "SELECT xxxxx FROM yyyy WHERE photoID = " & test

connais pas bien VB...

mais en C# ca donnerais ca:
sql_string "SELECT xxxxx FROM yyyy WHERE photoID " +  test;
Messages postés
29
Date d'inscription
jeudi 23 février 2006
Statut
Membre
Dernière intervention
20 juillet 2006

Merci cela a l'air de marcher.

Mon sujet suivant est comment l'intégrer dans une connexion ODBC.

J'ai essayé cela mais cela ne marche pas ??

<

asp:SqlDataSource
ID="SqlDataSource1"
runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>
"

providerName="<%$ ConnectionStrings:ConnectionString.ProviderName %>
"
SelectCommand
=<%sql_string %>
>

</asp:SqlDataSource>
Messages postés
154
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
22 août 2007

tu as le drivers ODBC pour MySQL??
sinon tu peut télécharger celà sur le site de MySQL... (pour ODBC, il faut crée un DNS sur le serveur ou ce trouve ta base, je crois mais ne suis pas sûre)
il existe également une DLL pour faire une Connection du "Type" OleDB.. également disponible sur le site..
Messages postés
154
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
22 août 2007

pour les exemples il y as la doc égalemt sur le site...
Messages postés
154
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
22 août 2007

pardon... pas DSN... mais DSN... (pour ODBC)
Messages postés
154
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
22 août 2007

re..... pas DNS... mais DSN..

Existe-t.il un moyen pour supprimer un post, ou une réponse que l'on à écris?
Messages postés
29
Date d'inscription
jeudi 23 février 2006
Statut
Membre
Dernière intervention
20 juillet 2006

Je n'ai pas de problème avec la connexion mais avec le Select.

Si je met dans mon sql_string en dur la valeur 1 cela marche.

Mon problème est un problème de syntaxe  pour "SelectCommand=<%sql_string %>

Voir Code plus haut
Messages postés
154
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
22 août 2007

il n'y as pas de différence si tu regarde la string que tu crée avec celle que tu fixe à 1?
si non... je ne vois pas le problème.. si en figeant le where ton code fonctionne, ca devrais fonctionné avec la variable si elle est bien remplie... (avec un integer)
Messages postés
29
Date d'inscription
jeudi 23 février 2006
Statut
Membre
Dernière intervention
20 juillet 2006

Le problème c'est de bien la remplir en variable !!!!!!!!!!!!
Messages postés
154
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
22 août 2007

je ne comprends pas... dans ton Page_Load
Public Sub Page_Load(
ByVal
sender
As

Object
,
ByVal
e
As
EventArgs) 
   Dim
test
As

Integer
 
   Dim
sql_string
As

String
 
   test = Request.QueryString("theme"
)
End

Sub

ta variable test est remplie???? avec le Theme_ID???
donc tu fais bien ca?

Public Sub
Page_Load(
ByVal
sender
As

Object
,
ByVal
e
As
EventArgs) 
   Dim
test
As

Integer
 
   Dim
sql_string
As

String
 
   test = Request.QueryString("theme"
)    sql_string "SELECT xxxxx FROM yyyy WHERE photoID " & test
End

Sub

la ca ne fonctionne pas

mais
et si tu met

Public Sub
Page_Load(
ByVal
sender
As

Object
,
ByVal
e
As
EventArgs) 
   Dim
test
As

Integer
 
   Dim
sql_string
As

String
 
   test = Request.QueryString("theme"
)    sql_string "SELECT xxxxx FROM yyyy WHERE photoID 1"
End

Sub

la ca marche???
Messages postés
29
Date d'inscription
jeudi 23 février 2006
Statut
Membre
Dernière intervention
20 juillet 2006

Pas de PB Le Problème c'est

"

providerName="<%$ ConnectionStrings:ConnectionString.ProviderName %>"SelectCommand=<%sql_string %>
>
Messages postés
154
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
22 août 2007

j'ai compris.... mais tu dis:

--   Je n'ai pas de problème avec la connexion mais avec le Select.
--  Si je met dans mon sql_string en dur la valeur 1 cela marche.
--  Mon problème est un problème de syntaxe  pour "SelectCommand=<%sql_string %>
--    Voir Code plus haut

et tu ne change pas "SelectCommand=<%sql_string %> ????
c'et bien ca???

donc si le code suivant ne change pas dans les 2 cas... (avec 1 est avec la variable test)
<sp:SqlDataSourceID="SqlDataSource1"runat="server"ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
providerName="<%$ ConnectionStrings:ConnectionString.ProviderName %>"SelectCommand=<%sql_string %> >

ca ne viens pas de là..
mais le l'affectation de la sql_string  (sql_string  = xxx)

pas le fait de l'assigner a ton SqlDataSource
Messages postés
154
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
22 août 2007

sinon tu fais SelectCommand= "SELECT xxx FROM yyyy WHERE PhotosID = @theme"
<SelectParameters
>
      <asp:Parameter
DefaultValue="1"
Name="theme"
Type="Integer"
/>

<SelectParameters>

et dans le code tu fais

Me.SqlDataSource1.SelectParameters(
"theme").DefaultValue = test
Messages postés
154
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
22 août 2007

donc ca dois donner ca:



                                          roviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>"                                           SelectCommandSelectCommand"SELECT xxx FROM yyyy WHERE PhotosID @theme"
 >

<SelectParameters
>
      <asp:Parameter
DefaultValue="1"
Name="theme"
Type="Integer"
/>

<SelectParameters>

</asp:SqlDataSource>
Messages postés
29
Date d'inscription
jeudi 23 février 2006
Statut
Membre
Dernière intervention
20 juillet 2006

Bonjour,

Merci pour vos efforts mais j'ai les messages suivants

Erreur 1 Impossible de créer un objet de type 'System.TypeCode' à partir de sa représentation sous forme de chaîne, 'Integer', pour la propriété 'Type'. 

Erreur 5 Validation (ASP.Net) : 'Integer' n'est pas une valeur valide pour cet attribut. 

Que faut il modifier.

Merci par avance

Mon code :

Public
Sub Page_Load(
ByVal sender
As
Object,
ByVal e
As EventArgs)

Dim test
As
Integer

test = Request.QueryString(

"theme")

End
Sub

<

asp:SqlDataSourceID="SqlDataSource1"runat="server"ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
ProviderName

"<%$ ConnectionStrings:ConnectionString.ProviderName %>"SelectCommand"SELECT bddisques.tblphoto.photoId,bddisques.tblphoto.photoRefImage ,bddisques.tblphoto.themeId ,bddisques.tblphoto.photoIndex FROM bddisques.tblphoto FROM bddisques.tblphoto WHERE PhotosID = @theme"> 

<

SelectParameters>

<asp:Parameter
DefaultValue="1"
Name="theme"
Type="Integer"/></

SelectParameters> 

</

asp:SqlDataSource>
Messages postés
154
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
22 août 2007

Désolé.... j'ai pensé VB... mais pas .NET

SelectParameters> 

   
</
SelectParameters>

et n'oublie pas dans le Page_load ou ailleures...

Me.SqlDataSource1.SelectParameters("theme"
).DefaultValue = test
Messages postés
154
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
22 août 2007

ou Int16 ou Int8... à toi de voir
Messages postés
29
Date d'inscription
jeudi 23 février 2006
Statut
Membre
Dernière intervention
20 juillet 2006

Je n'ai plus de message mais je ne récupère rien :

Public

Sub Page_Load(ByVal sender AsObject, ByVal e As EventArgs)
Dim test AsInteger

test = Request.QueryString("theme")

Me.SqlDataSource1.SelectParameters("theme").DefaultValue = test

End Sub

<

asp:contentid="Content1"contentplaceholderid="Main"runat="server"><

asp:SqlDataSourceID="SqlDataSource1"runat="server"ConnectionString="<%$ ConnectionStrings:ConnectionString %>"ProviderName

"<%$ ConnectionStrings:ConnectionString.ProviderName %>"SelectCommand"SELECT bddisques.tblphoto.photoId,bddisques.tblphoto.photoRefImage ,bddisques.tblphoto.themeId ,bddisques.tblphoto.photoIndex FROM bddisques.tblphoto WHERE themeId = @theme"><

SelectParameters>

</

SelectParameters> 

</

asp:SqlDataSource>

<FooterStyleBackColor="#507CD1"Font-Bold="True"ForeColor="White"/>

<SelectedItemStyleBackColor="#D1DDF1"Font-Bold="True"ForeColor="#333333"/>

'>"alt='R‚f‚rence <%# Eval("photoIndex") %>'/></td>

<%# databinder.eval(container.dataitem, "photoId") %>

<HeaderStyleBackColor="#507CD1"Font-Bold="True"ForeColor="White"/>

</

asp:content>