Rechercher : dans
Par :

La référence d'objet n'est pas définie à ????

Dernière réponse le 25 aoû 2008 à 17:19:25 mirela26, le 21 aoû 2008 à 19:21:09 
 Signaler ce message aux modérateurs

Bonjour,

La référence d'objet n'est pas définie à une instance d'un objet.

voici l'erreur que je génère cette fonction:
Public Function Extraire(ByVal Table As String, ByVal champs As String, ByVal conditions As String) As String
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Visual Studio 2005\WebSites4\App_Data\Bdd.mdb;"
Dim SQL As String
cn.Open()
SQL = "select " & champs & " as mmAlias from " & Table & " where " & conditions & ""

     While reader.Read()

Extraire = reader.GetString(0)
End While
cn.Close()
End Function


une suggestion?!
merci.
Configuration: Windows XP
Firefox 2.0.0.16

Meilleures réponses pour « La référence d'objet n'est pas définie à ???? » dans :
Référencer son site : les moteurs de recherche VoirVoici quelques autres "trucs" à savoir pour référencer un site. Les moteurs de recherche où il faut à tout prix présenter son site : 1) DMOZ ( www.dmoz.org). Ce site est très important car Google, Yahoo, Lycos, Voila... vont tous rechercher des...
Référencer un/son site VoirComment référencer un site 1- Renseigner les balises méta 2- Référencer son site 3 - Les logiciels qui peuvent vous aider 4 - Autres liens sur ce sujet 1- Renseigner les balises méta Insérées dans chaque en-tête de page, les metatags...
[Dico] Dictionnaires - Définitions - Extensions VoirAlors que vous êtes en plein boulot sur votre computeur, n’avez-vous jamais eu besoin de la définition ou de l’orthographe d’un mot ? D’une explication ou de la traduction d’un terme informatique ? Et ces “.com”, ou “.bmp”, qu’est-ce que c’est que...
Télécharger Drivers Realtek High Definition Audio pour Vista/7 VoirLe pilote Realtek High Definition Audio pour Windows Vista (et Windows 7) est compatible avec les chipsets audio suivants : Realtek ALC260 Realtek ALC262 Realtek ALC267 Realtek ALC268 Realtek ALC269 Realtek ALC272 Realtek ALC273 ...
Télécharger Drivers Realtek High Definition Audio pour 2000/XP VoirLe pilote Realtek High Definition Audio pour Windows 2000/XP est compatible avec les chipsets audio suivants : Realtek ALC260 Realtek ALC262 Realtek ALC267 Realtek ALC268 Realtek ALC269 Realtek ALC272 Realtek ALC273 Realtek ALC275 Realtek...
POO - Le polymorphisme VoirDéfinition du polymorphisme Le nom de polymorphisme vient du grec et signifie qui peut prendre plusieurs formes. Cette caractéristique est un des concepts essentiels de la programmation orientée objet. Alors que l'héritage concerne les classes (et...
Javascript - l'objet Array VoirLes particularités de l'objet Array L'objet Array est un objet du noyau Javascript permettant de créer et de manipuler des tableaux. Voici la syntaxe à utiliser pour créer une variable tableau : var x = new Array(element1[, element2, ...]); Si...
Javascript - L'objet window VoirLes particularités de l'objet window L'objet window est l'objet par excellence dans Javascript, car il est le parent de chaque objet qui compose la page web, il contient donc : l'objet document: la page en elle-même l'objet location: le lieu de...

1

neofenix, le 22 aoû 2008 à 10:21:10

Salut mirela,

as tu definis reader.Read() car dans ton bout de code il ne l'est pas.
sinon si j'ai bien compris tu obtiens cette erreur sur cette ligne donc a mon avis:
soit il est mal definis
soit il est pas definis
soit il est null est donc essayer de lire cette donnée te fait planter

tiens aurais tu pas oublié ceci:
Dim reader As SqlDataReader = = sql.ExecuteReader();

Répondre à neofenix

2

mirela26, le 22 aoû 2008 à 13:38:43

Salut neofenix

merci pour ta réponse!
en faite j'essaie d'écrire un code qui permet d'afficher à partir d'un lien un champ contenant comme valeur une page aspx. Elle sera affiché en fonction de l'email récupérer avec querystring.
en bref:
ma table employés qui contient un champ website

à la génération, reader=Nothing
je comprend pas pourquoi?

voici mon code:

********************mes variables ************************
Public cn As New ADODB.Connection
Public command As New Data.OleDb.OleDbCommand 'Commande SQL
Public reader As Data.OleDb.OleDbDataReader 'Parcours les enregistrements


************************ma function Extraire****************
Public Function Extraire(ByVal Table As String, ByVal champs As String, ByVal conditions As String) As String

cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Visual Studio 2005\WebSites4\App_Data\Bdd.mdb;"

Dim SQL As String
cn.Open()
SQL = "select " & champs & " as mmAlias from " & Table & " where " & conditions & ""
CommandSELECT(SQL)

While reader.Read()
Extraire = reader.GetString(0)
End While

End Function

************************ma procédure CommandSQL*******************
Public Sub CommandSELECT(ByVal LeSQL As String)

command = New Data.OleDb.OleDbCommand(LeSQL, cn)
If cn.State = ConnectionState.Closed Then
cn.Open()
End If
command.CommandTimeout = 10000
reader = command.ExecuteReader 'Exécute la commande
End Sub

************************Action à exécuter lors du clique sur le lien*************
Sub BtnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs)

Dim web As String
web = Extraire("Employes", "Website", "email='" & Request.QueryString("email") & "'")

End Sub

quelques suggestions?!

Répondre à mirela26

3

neofenix, le 22 aoû 2008 à 14:00:18

Oui ton reader ne prend pas l'execution de ta requete donc bien si il n'est pas initialisée est est donc vide ajoute simplement

reader= sql.ExecuteReader()

juste avant While reader.Read()

desolé j'avais mal compris ton code

pour moi le probleme peut venir de ta fonction qui ne garde pas en memoire ta variable essaye en retournant ton reader

Répondre à neofenix

4

neofenix, le 22 aoû 2008 à 16:26:33

Public Sub CommandSELECT(ByVal LeSQL As String)

command = New Data.OleDb.OleDbCommand(LeSQL, cn)
If cn.State = ConnectionState.Closed Then
cn.Open()
End If
command.CommandTimeout = 10000
return command.ExecuteReader 'Exécute la commande
End Sub 


et tu as donc:

Dim SQL As String
cn.Open()
SQL = "select " & champs & " as mmAlias from " & Table & " where " & conditions & ""
reader=CommandSELECT(SQL)

While reader.Read()
Extraire = reader.GetString(0)
End While

Répondre à neofenix

5

mirela26, le 22 aoû 2008 à 18:17:09

Toujours la même erreur neofenix
j'aimerai bien de plus pouvoir utiliser la méthode commandSELECT, t'as une idée sur comment le contourner?

Répondre à mirela26

6

mirela26, le 23 aoû 2008 à 12:22:11

Salut
j'ai trouvé la cause;
le champ à retourner de ma table est vide,et en insérant des valeurs,j'ai plus cette erreur!!
seulement je sais pas comment afficher la page web.
dans mon code ,il est question de recupérer le contenu du champ website qui par exemple contient mapage.aspx
mais alors comment afficher la page web?

Répondre à mirela26

7

neofenix, le 25 aoû 2008 à 09:25:15

Salut mirela,
Désolé je n'ai pas trés bien compris ce que tu souhaitais faire avec ta base de données et la page.
Si tu pouvais expliquer avec un peu plus de precision pour que je puisse essayer de t'aider.

Répondre à neofenix

8

mirela26, le 25 aoû 2008 à 15:36:36

Salut neofenix
j'ai dans ma base, une table Employés qui contient un champ Website. Et le contenu de ce champ est le nom d'une page web,exemple mapage.aspx
et j'aimerai afficher cette page à partir d'un lien.et mon code ne permet que d'extraire la valeur de ma page et le mettre dans une variable web(voir Sub BtnSubmit_Click).
j'espère que çà va maintenant!!

Répondre à mirela26

9

neofenix, le 25 aoû 2008 à 15:52:57

Si j'ai bien compris tu veux mettre ta réponse de ta requête comme lien donc:

Dim instance As HyperLink
instance.NavigateUrl = value

où value est le résultat de ta requête.

Répondre à neofenix

10

mirela26, le 25 aoû 2008 à 17:08:35

Merci neofenix pour ta réponse
mais il manque un petit quelque chose:il m'affiche cette erreur
la variable 'instance' est utilisée avant qu'une valeur ne lui ai été assignée

************************Action à exécuter lors du clique sur le lien*************
Sub BtnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs)

Dim web As String
Dim instance As HyperLink

web = Extraire("Employes", "Website", "email='" & Request.QueryString("email") & "'")
instance.NavigateUrl = value
End Sub


Aussi j'ai trouvé un moyen d'afficher le lien dans un datalist,seulement j'ignore comment personnaliser le titre du lien:
<asp:DataList ID="DataList2" runat="server" DataSourceID="AccessDataSource2">
<ItemTemplate>
<a href='<%# DataBinder.Eval(Container.DataItem, "Website") %>''><%#DataBinder.Eval(Container.DataItem, "Website")%>Etablir Ma Page</a>

<br />
<br />
</ItemTemplate>
</asp:DataList>


avec ce code,il m'affiche et le titre et le nom de ma page
donc j'ai à l'affiche du style:
mapage.aspxEtablir Ma Page

as-tu une idée?
merci neofenix!!!

Répondre à mirela26

11

 neofenix, le 25 aoû 2008 à 17:19:25

Avec ceci
si tu veux afficher etablir ma page:

<asp:DataList ID="DataList2" runat="server" DataSourceID="AccessDataSource2">
<ItemTemplate>
<a href='<%# DataBinder.Eval(Container.DataItem, "Website") %>''>Etablir Ma Page</a>

<br />
<br />
</ItemTemplate>
</asp:DataList> 


soit tu veux afficher l'adresse mail:

<asp:DataList ID="DataList2" runat="server" DataSourceID="AccessDataSource2">
<ItemTemplate>
<a href='<%# DataBinder.Eval(Container.DataItem, "Website") %>''><%#DataBinder.Eval(Container.DataItem, "Website")%></a>

<br />
<br />
</ItemTemplate>
</asp:DataList> 


en ce qui concerne ton probleme de ton hyperlink sinon:
tu le crée dans ta page aspx avec comme id hyperlink1 par exemple et dans ton code vb tu fais:

Sub BtnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim web As String
web = Extraire("Employes", "Website", "email='" & Request.QueryString("email") & "'")
hyperlink1.NavigateUrl = value
End Sub

Répondre à neofenix
Collection CommentÇaMarche.net