Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Questions basiques sur url et base de données

8 réponses
Avatar
Fabaunet.
Bonjour,

Je suis en train de me former à ASP.NET 2.0 et VB.NET et je rencontre un
certain nombre de difficultés basiques je pense mais qui me bloquent ...

1 er problème :

Voici le code :
<asp:HyperLink ID="Site" runat="server" Text='<%# Eval("Site") %>'
NavigateUrl='<%# Eval("Site") %>' Target="_blank"></asp:HyperLink>
Le lien s'affiche bien mais renvoi à www.monadresse.com/www.monsite.com au
lieu de renvoyer à www.monsite.com
("Site" étant une donnée extraite d'une base de données)

2 eme problème :

Je me connecte à une base de données :

<asp:accessdatasource
id="AccessDataSource1"
runat="server"
datasourcemode="DataSet"
datafile="base1.mdb"
selectcommand="SELECT * FROM Table1 WHERE CODE=3">
</asp:accessdatasource>

j'affiche le résultat :

<asp:DataList
DataSourceID="AccessDataSource1"
ID="DataList1"
runat="server">
<ItemTemplate>
<asp:Label ID="Nom" runat="server" Text='<%# Eval("Nom") %>'></asp:Label>
<br />
<asp:Label ID="Fax" runat="server" Text='<%# Eval("Fax") %>'></asp:Label>
</ItemTemplate>
</asp:DataList>

Le résultat s'affiche bien, mais comment faire pour afficher "Pas de fax" si
le champ "Fax" est null ?

--
Merci d'avance
Très cordialement
Fabrice (en autoformation sur asp.net, vb.net, sql serveur, vb - en
recherche d'emploi sur Marseille)

8 réponses

Avatar
Gilles TOURREAU
Le Wed, 18 Jul 2007 10:37:24 +0200, Fabaunet. a
écrit:

Bonjour,

Je suis en train de me former à ASP.NET 2.0 et VB.NET et je rencontre un
certain nombre de difficultés basiques je pense mais qui me bloquent ...

1 er problème :

Voici le code :
<asp:HyperLink ID="Site" runat="server" Text='<%# Eval("Site") %>'
NavigateUrl='<%# Eval("Site") %>' Target="_blank"></asp:HyperLink>
Le lien s'affiche bien mais renvoi à www.monadresse.com/www.monsite.com
au
lieu de renvoyer à www.monsite.com
("Site" étant une donnée extraite d'une base de données)

2 eme problème :

Je me connecte à une base de données :

<asp:accessdatasource
id="AccessDataSource1"
runat="server"
datasourcemode="DataSet"
datafile="base1.mdb"
selectcommand="SELECT * FROM Table1 WHERE CODE=3">
</asp:accessdatasource>

j'affiche le résultat :

<asp:DataList
DataSourceID="AccessDataSource1"
ID="DataList1"
runat="server">
<ItemTemplate>
<asp:Label ID="Nom" runat="server" Text='<%# Eval("Nom") %>'></asp:Label>
<br />
<asp:Label ID="Fax" runat="server" Text='<%# Eval("Fax") %>'></asp:Label>
</ItemTemplate>
</asp:DataList>

Le résultat s'affiche bien, mais comment faire pour afficher "Pas de
fax" si
le champ "Fax" est null ?




Pour le 1er problème il faudrait nous indiquer qu'elle est la valeur
exacte de votre rubrique <%# Eval("Nom") %>

Pour le 2ème :

<%# string.IsNullOrEmpty(((LigneTypeDeDonnée)Container.Item).Fax) ? "Pas
de fax" : ((LigneTypeDeDonnée)Container.Item).Fax %>

où LigneTypeDeDonnée est le type d'une ligne de données de votre
AccessDataSource1.

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Bonjour,

1) Il est préférable que le lien bindé à la propriété "NavigateUrl" soit
préfixé par "http://" sinon cela cause ce problème de concaténation.

2) En VB.Net, vous pouvez utiliser le branchement conditionnel si le champ
Fax ne renvoie jamais DBNull :
<%# IIf(String.IsNullOrEmptyEval("Fax"), "Pas de fax" , Eval("Fax")) %>

S'il renvoie DBNull dans certains cas, il vaut mieux faire une fonction protected
dans le code behind :
Protected Function GetFax(ByVal fax As Object) As String
If Not fax Is DBNull.Value AndAlso Not String.IsNullOrEmpty(Fax) Then
Return CStr(fax)
Else
Return "Pas de Fax"
End If
End Function

et l'utiliser comme ceci : <asp:Label ID="Fax" runat="server" Text='<%# GetFax(Eval("Fax"))
%>'></asp:Label>


Hope this help.

Tonio - MVP,
http://www.wygwam.com
http://blogs.developpeur.org/tonio
Avatar
Fabaunet.
Bonjour,

Pour le problème n°1 : n'est il pas possible de faire un test ? :
=> si les 7 premiers caractères sont "http://" alors laisser l'adresse sinon
concaténer "http://" à l'adresse ?

Impeccable pour le problème n°2 ! (j'ai utilisé la 2ème méthode, la la
première engendrant en effet des souci avec DBNULL ... de plus la méthode
n°1 comportait une petite erreur de syntaxe :
mettre :
<%# IIf(String.IsNullOrEmpty(Eval("Fax")), "Pas de fax" , Eval("Fax")) %>
et pas <%# IIf(String.IsNullOrEmptyEval("Fax"), "Pas de fax" , Eval("Fax"))
%>
)

Merci beaucoup !


Bonjour,

1) Il est préférable que le lien bindé à la propriété "NavigateUrl" soit
préfixé par "http://" sinon cela cause ce problème de concaténation.

2) En VB.Net, vous pouvez utiliser le branchement conditionnel si le champ
Fax ne renvoie jamais DBNull :
<%# IIf(String.IsNullOrEmptyEval("Fax"), "Pas de fax" , Eval("Fax")) %>

S'il renvoie DBNull dans certains cas, il vaut mieux faire une fonction
protected dans le code behind :
Protected Function GetFax(ByVal fax As Object) As String
If Not fax Is DBNull.Value AndAlso Not String.IsNullOrEmpty(Fax)
Then
Return CStr(fax)
Else
Return "Pas de Fax"
End If
End Function

et l'utiliser comme ceci : <asp:Label ID="Fax" runat="server" Text='<%#
GetFax(Eval("Fax")) %>'></asp:Label>


Hope this help.

Tonio - MVP,
http://www.wygwam.com
http://blogs.developpeur.org/tonio




Avatar
Fabaunet.
"Gilles TOURREAU" a écrit dans le message de news:

Le Wed, 18 Jul 2007 10:37:24 +0200, Fabaunet. a
écrit:

Bonjour,

Je suis en train de me former à ASP.NET 2.0 et VB.NET et je rencontre un
certain nombre de difficultés basiques je pense mais qui me bloquent ...

1 er problème :

Voici le code :
<asp:HyperLink ID="Site" runat="server" Text='<%# Eval("Site") %>'
NavigateUrl='<%# Eval("Site") %>' Target="_blank"></asp:HyperLink>
Le lien s'affiche bien mais renvoi à www.monadresse.com/www.monsite.com
au
lieu de renvoyer à www.monsite.com
("Site" étant une donnée extraite d'une base de données)

2 eme problème :

Je me connecte à une base de données :

<asp:accessdatasource
id="AccessDataSource1"
runat="server"
datasourcemode="DataSet"
datafile="base1.mdb"
selectcommand="SELECT * FROM Table1 WHERE CODE=3">
</asp:accessdatasource>

j'affiche le résultat :

<asp:DataList
DataSourceID="AccessDataSource1"
ID="DataList1"
runat="server">
<ItemTemplate>
<asp:Label ID="Nom" runat="server" Text='<%# Eval("Nom") %>'></asp:Label>
<br />
<asp:Label ID="Fax" runat="server" Text='<%# Eval("Fax") %>'></asp:Label>
</ItemTemplate>
</asp:DataList>

Le résultat s'affiche bien, mais comment faire pour afficher "Pas de
fax" si
le champ "Fax" est null ?




Pour le 1er problème il faudrait nous indiquer qu'elle est la valeur
exacte de votre rubrique <%# Eval("Nom") %>

Pour le 2ème :

<%# string.IsNullOrEmpty(((LigneTypeDeDonnée)Container.Item).Fax) ? "Pas
de fax" : ((LigneTypeDeDonnée)Container.Item).Fax %>

où LigneTypeDeDonnée est le type d'une ligne de données de votre
AccessDataSource1.

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr




Merci pour cette réponse !

Pour le problème n°1 : il s'agit de la valeur retournée par la base de
données access :
Eval("Site") renvoi la valeur contenu dans le champ "Site" (exemple :
www.monsite.com)

Merci
Avatar
Gilles TOURREAU
Le Wed, 18 Jul 2007 14:37:32 +0200, Fabaunet. a
écrit:

"Gilles TOURREAU" a écrit dans le message de
news:

Le Wed, 18 Jul 2007 10:37:24 +0200, Fabaunet.
a
écrit:

Bonjour,

Je suis en train de me former à ASP.NET 2.0 et VB.NET et je rencontre
un
certain nombre de difficultés basiques je pense mais qui me bloquent
...

1 er problème :

Voici le code :
<asp:HyperLink ID="Site" runat="server" Text='<%# Eval("Site") %>'
NavigateUrl='<%# Eval("Site") %>' Target="_blank"></asp:HyperLink>
Le lien s'affiche bien mais renvoi à www.monadresse.com/www.monsite.com
au
lieu de renvoyer à www.monsite.com
("Site" étant une donnée extraite d'une base de données)

2 eme problème :

Je me connecte à une base de données :

<asp:accessdatasource
id="AccessDataSource1"
runat="server"
datasourcemode="DataSet"
datafile="base1.mdb"
selectcommand="SELECT * FROM Table1 WHERE CODE=3">
</asp:accessdatasource>

j'affiche le résultat :

<asp:DataList
DataSourceID="AccessDataSource1"
ID="DataList1"
runat="server">
<ItemTemplate>
<asp:Label ID="Nom" runat="server" Text='<%# Eval("Nom")
%>'></asp:Label>
<br />
<asp:Label ID="Fax" runat="server" Text='<%# Eval("Fax")
%>'></asp:Label>
</ItemTemplate>
</asp:DataList>

Le résultat s'affiche bien, mais comment faire pour afficher "Pas de
fax" si
le champ "Fax" est null ?




Pour le 1er problème il faudrait nous indiquer qu'elle est la valeur
exacte de votre rubrique <%# Eval("Nom") %>

Pour le 2ème :

<%# string.IsNullOrEmpty(((LigneTypeDeDonnée)Container.Item).Fax) ? "Pas
de fax" : ((LigneTypeDeDonnée)Container.Item).Fax %>

où LigneTypeDeDonnée est le type d'une ligne de données de votre
AccessDataSource1.

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr




Merci pour cette réponse !

Pour le problème n°1 : il s'agit de la valeur retournée par la base de
données access :
Eval("Site") renvoi la valeur contenu dans le champ "Site" (exemple :
www.monsite.com)

Merci






Il faut ajouter donc "http://" devant.

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Fabaunet.
"Gilles TOURREAU" a écrit dans le message de news:

Le Wed, 18 Jul 2007 14:37:32 +0200, Fabaunet. a
écrit:

"Gilles TOURREAU" a écrit dans le message de
news:

Le Wed, 18 Jul 2007 10:37:24 +0200, Fabaunet.
a
écrit:

Bonjour,

Je suis en train de me former à ASP.NET 2.0 et VB.NET et je rencontre
un
certain nombre de difficultés basiques je pense mais qui me bloquent
...

1 er problème :

Voici le code :
<asp:HyperLink ID="Site" runat="server" Text='<%# Eval("Site") %>'
NavigateUrl='<%# Eval("Site") %>' Target="_blank"></asp:HyperLink>
Le lien s'affiche bien mais renvoi à www.monadresse.com/www.monsite.com
au
lieu de renvoyer à www.monsite.com
("Site" étant une donnée extraite d'une base de données)

2 eme problème :

Je me connecte à une base de données :

<asp:accessdatasource
id="AccessDataSource1"
runat="server"
datasourcemode="DataSet"
datafile="base1.mdb"
selectcommand="SELECT * FROM Table1 WHERE CODE=3">
</asp:accessdatasource>

j'affiche le résultat :

<asp:DataList
DataSourceID="AccessDataSource1"
ID="DataList1"
runat="server">
<ItemTemplate>
<asp:Label ID="Nom" runat="server" Text='<%# Eval("Nom")
%>'></asp:Label>
<br />
<asp:Label ID="Fax" runat="server" Text='<%# Eval("Fax")
%>'></asp:Label>
</ItemTemplate>
</asp:DataList>

Le résultat s'affiche bien, mais comment faire pour afficher "Pas de
fax" si
le champ "Fax" est null ?




Pour le 1er problème il faudrait nous indiquer qu'elle est la valeur
exacte de votre rubrique <%# Eval("Nom") %>

Pour le 2ème :

<%# string.IsNullOrEmpty(((LigneTypeDeDonnée)Container.Item).Fax) ? "Pas
de fax" : ((LigneTypeDeDonnée)Container.Item).Fax %>

où LigneTypeDeDonnée est le type d'une ligne de données de votre
AccessDataSource1.

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr




Merci pour cette réponse !

Pour le problème n°1 : il s'agit de la valeur retournée par la base de
données access :
Eval("Site") renvoi la valeur contenu dans le champ "Site" (exemple :
www.monsite.com)

Merci






Il faut ajouter donc "http://" devant.

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr



Oui j'ai bien compris ça, mais je voudrais le rajouter dynamiquement si le
champ ne commence pas par "http://"

Cordialement

Fabrice
Avatar
Gilles TOURREAU
Le Wed, 18 Jul 2007 15:31:36 +0200, Fabaunet. a
écrit:


"Gilles TOURREAU" a écrit dans le message de
news:

Le Wed, 18 Jul 2007 14:37:32 +0200, Fabaunet.
a
écrit:

"Gilles TOURREAU" a écrit dans le message de
news:

Le Wed, 18 Jul 2007 10:37:24 +0200, Fabaunet.

a
écrit:

Bonjour,

Je suis en train de me former à ASP.NET 2.0 et VB.NET et je rencontre
un
certain nombre de difficultés basiques je pense mais qui me bloquent
...

1 er problème :

Voici le code :
<asp:HyperLink ID="Site" runat="server" Text='<%# Eval("Site") %>'
NavigateUrl='<%# Eval("Site") %>' Target="_blank"></asp:HyperLink>
Le lien s'affiche bien mais renvoi à
www.monadresse.com/www.monsite.com
au
lieu de renvoyer à www.monsite.com
("Site" étant une donnée extraite d'une base de données)

2 eme problème :

Je me connecte à une base de données :

<asp:accessdatasource
id="AccessDataSource1"
runat="server"
datasourcemode="DataSet"
datafile="base1.mdb"
selectcommand="SELECT * FROM Table1 WHERE CODE=3">
</asp:accessdatasource>

j'affiche le résultat :

<asp:DataList
DataSourceID="AccessDataSource1"
ID="DataList1"
runat="server">
<ItemTemplate>
<asp:Label ID="Nom" runat="server" Text='<%# Eval("Nom")
%>'></asp:Label>
<br />
<asp:Label ID="Fax" runat="server" Text='<%# Eval("Fax")
%>'></asp:Label>
</ItemTemplate>
</asp:DataList>

Le résultat s'affiche bien, mais comment faire pour afficher "Pas de
fax" si
le champ "Fax" est null ?




Pour le 1er problème il faudrait nous indiquer qu'elle est la valeur
exacte de votre rubrique <%# Eval("Nom") %>

Pour le 2ème :

<%# string.IsNullOrEmpty(((LigneTypeDeDonnée)Container.Item).Fax) ?
"Pas
de fax" : ((LigneTypeDeDonnée)Container.Item).Fax %>

où LigneTypeDeDonnée est le type d'une ligne de données de votre
AccessDataSource1.

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr




Merci pour cette réponse !

Pour le problème n°1 : il s'agit de la valeur retournée par la base de
données access :
Eval("Site") renvoi la valeur contenu dans le champ "Site" (exemple :
www.monsite.com)

Merci






Il faut ajouter donc "http://" devant.

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr



Oui j'ai bien compris ça, mais je voudrais le rajouter dynamiquement si
le
champ ne commence pas par "http://"

Cordialement

Fabrice





Il faudrait mieux faire cela dans une fonction behind que vous appelez
dans le code ASP (comme pour les n° de fax)...

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Fabaunet.
Je comprends ...
Merci beaucoup !


"Gilles TOURREAU" a écrit dans le message de news:

Le Wed, 18 Jul 2007 15:31:36 +0200, Fabaunet. a
écrit:


"Gilles TOURREAU" a écrit dans le message de
news:

Le Wed, 18 Jul 2007 14:37:32 +0200, Fabaunet.
a
écrit:

"Gilles TOURREAU" a écrit dans le message de
news:

Le Wed, 18 Jul 2007 10:37:24 +0200, Fabaunet.

a
écrit:

Bonjour,

Je suis en train de me former à ASP.NET 2.0 et VB.NET et je rencontre
un
certain nombre de difficultés basiques je pense mais qui me bloquent
...

1 er problème :

Voici le code :
<asp:HyperLink ID="Site" runat="server" Text='<%# Eval("Site") %>'
NavigateUrl='<%# Eval("Site") %>' Target="_blank"></asp:HyperLink>
Le lien s'affiche bien mais renvoi à
www.monadresse.com/www.monsite.com
au
lieu de renvoyer à www.monsite.com
("Site" étant une donnée extraite d'une base de données)

2 eme problème :

Je me connecte à une base de données :

<asp:accessdatasource
id="AccessDataSource1"
runat="server"
datasourcemode="DataSet"
datafile="base1.mdb"
selectcommand="SELECT * FROM Table1 WHERE CODE=3">
</asp:accessdatasource>

j'affiche le résultat :

<asp:DataList
DataSourceID="AccessDataSource1"
ID="DataList1"
runat="server">
<ItemTemplate>
<asp:Label ID="Nom" runat="server" Text='<%# Eval("Nom")
%>'></asp:Label>
<br />
<asp:Label ID="Fax" runat="server" Text='<%# Eval("Fax")
%>'></asp:Label>
</ItemTemplate>
</asp:DataList>

Le résultat s'affiche bien, mais comment faire pour afficher "Pas de
fax" si
le champ "Fax" est null ?




Pour le 1er problème il faudrait nous indiquer qu'elle est la valeur
exacte de votre rubrique <%# Eval("Nom") %>

Pour le 2ème :

<%# string.IsNullOrEmpty(((LigneTypeDeDonnée)Container.Item).Fax) ?
"Pas
de fax" : ((LigneTypeDeDonnée)Container.Item).Fax %>

où LigneTypeDeDonnée est le type d'une ligne de données de votre
AccessDataSource1.

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr




Merci pour cette réponse !

Pour le problème n°1 : il s'agit de la valeur retournée par la base de
données access :
Eval("Site") renvoi la valeur contenu dans le champ "Site" (exemple :
www.monsite.com)

Merci






Il faut ajouter donc "http://" devant.

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr



Oui j'ai bien compris ça, mais je voudrais le rajouter dynamiquement si
le
champ ne commence pas par "http://"

Cordialement

Fabrice





Il faudrait mieux faire cela dans une fonction behind que vous appelez
dans le code ASP (comme pour les n° de fax)...

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr