Lors d'un test, j'ai généré un dataform avec l'assistant sur une connexion
Access. L'assistant m'a généré un dataset typé, "MonDataset". Il ne comporte
qu'une seule table "MaTable", laquelle a un seul champ "MonChamp" de type
string (à l'image de ma table de test dans la base Access).
Eh bien je ne peux pas référencer directement MonChamp via la propriété du
datarow typé, en écrivant par exemple dans le code du dataform qqchose comme
:
MonDataset.MaTable.Rows(0).MonChamp = "toto"
J'ai une erreur de type (et évidemment la complétion ne propose pas
"MonChamp")
En revanche sur le test suivant :
---------------------------------------------------------------------------------------------------
If objMonDataset.MaTable.Rows(0).GetType.Name = "MaTableRow" Then
MsgBox("ok")
CType(objMonDataset.MaTable.Rows(0), MonDataset.MaTableRow).MonChamp =
"toto"
Else
MsgBox("ko")
End If
---------------------------------------------------------------------------------------------------
là, ça compile, et à l'exécution j'obtiens bien "ok" mais le cast échoue.
Je ne suis pas encore rentré dans le détail du code généré mais j'aimerais
déjà savoir si le pb est général.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrice Ongla
2 précisions : 1) Après redémarrage de VS, le cast n'échoue plus. 2) L'erreur de type sur l'expression "MaTable.Rows(0).MonChamp" est : 'MonChamp' n'est pas un membre de 'System.Data.DataRow'." A la compilation, le compilateur voit donc "objMonDataset.MaTable.Rows(0)", instance de "MaTableRow", comme une instance de sa superclasse "Datarow" alors qu'à l'exécution il vous dit que objMonDataset.MaTable.Rows(0).GetType.Name = "MaTableRow"
Bizarre quand même... Y'a sûrement une explication simple mais je sèche...
"Patrice Ongla" a écrit dans le message de news: 42069e4e$0$505$
Bonsoir à tous,
Je viens d'observer un truc qui m'étonne.
Lors d'un test, j'ai généré un dataform avec l'assistant sur une connexion Access. L'assistant m'a généré un dataset typé, "MonDataset". Il ne comporte qu'une seule table "MaTable", laquelle a un seul champ "MonChamp" de type string (à l'image de ma table de test dans la base Access). Eh bien je ne peux pas référencer directement MonChamp via la propriété du datarow typé, en écrivant par exemple dans le code du dataform qqchose comme :
MonDataset.MaTable.Rows(0).MonChamp = "toto"
J'ai une erreur de type (et évidemment la complétion ne propose pas "MonChamp")
En revanche sur le test suivant :
--------------------------------------------------------------------------------------------------- If objMonDataset.MaTable.Rows(0).GetType.Name = "MaTableRow" Then MsgBox("ok") CType(objMonDataset.MaTable.Rows(0), MonDataset.MaTableRow).MonChamp = "toto" Else MsgBox("ko") End If ---------------------------------------------------------------------------------------------------
là, ça compile, et à l'exécution j'obtiens bien "ok" mais le cast échoue.
Je ne suis pas encore rentré dans le détail du code généré mais j'aimerais déjà savoir si le pb est général.
D'avance merci.
Patrice
2 précisions :
1) Après redémarrage de VS, le cast n'échoue plus.
2) L'erreur de type sur l'expression "MaTable.Rows(0).MonChamp" est :
'MonChamp' n'est pas un membre de 'System.Data.DataRow'."
A la compilation, le compilateur voit donc "objMonDataset.MaTable.Rows(0)",
instance de "MaTableRow", comme une instance de sa superclasse "Datarow"
alors qu'à l'exécution il vous dit que
objMonDataset.MaTable.Rows(0).GetType.Name = "MaTableRow"
Bizarre quand même... Y'a sûrement une explication simple mais je sèche...
"Patrice Ongla" <ongla@free.fr> a écrit dans le message de news:
42069e4e$0$505$636a15ce@news.free.fr...
Bonsoir à tous,
Je viens d'observer un truc qui m'étonne.
Lors d'un test, j'ai généré un dataform avec l'assistant sur une connexion
Access. L'assistant m'a généré un dataset typé, "MonDataset". Il ne
comporte qu'une seule table "MaTable", laquelle a un seul champ "MonChamp"
de type string (à l'image de ma table de test dans la base Access).
Eh bien je ne peux pas référencer directement MonChamp via la propriété du
datarow typé, en écrivant par exemple dans le code du dataform qqchose
comme :
MonDataset.MaTable.Rows(0).MonChamp = "toto"
J'ai une erreur de type (et évidemment la complétion ne propose pas
"MonChamp")
En revanche sur le test suivant :
---------------------------------------------------------------------------------------------------
If objMonDataset.MaTable.Rows(0).GetType.Name = "MaTableRow" Then
MsgBox("ok")
CType(objMonDataset.MaTable.Rows(0), MonDataset.MaTableRow).MonChamp =
"toto"
Else
MsgBox("ko")
End If
---------------------------------------------------------------------------------------------------
là, ça compile, et à l'exécution j'obtiens bien "ok" mais le cast échoue.
Je ne suis pas encore rentré dans le détail du code généré mais j'aimerais
déjà savoir si le pb est général.
2 précisions : 1) Après redémarrage de VS, le cast n'échoue plus. 2) L'erreur de type sur l'expression "MaTable.Rows(0).MonChamp" est : 'MonChamp' n'est pas un membre de 'System.Data.DataRow'." A la compilation, le compilateur voit donc "objMonDataset.MaTable.Rows(0)", instance de "MaTableRow", comme une instance de sa superclasse "Datarow" alors qu'à l'exécution il vous dit que objMonDataset.MaTable.Rows(0).GetType.Name = "MaTableRow"
Bizarre quand même... Y'a sûrement une explication simple mais je sèche...
"Patrice Ongla" a écrit dans le message de news: 42069e4e$0$505$
Bonsoir à tous,
Je viens d'observer un truc qui m'étonne.
Lors d'un test, j'ai généré un dataform avec l'assistant sur une connexion Access. L'assistant m'a généré un dataset typé, "MonDataset". Il ne comporte qu'une seule table "MaTable", laquelle a un seul champ "MonChamp" de type string (à l'image de ma table de test dans la base Access). Eh bien je ne peux pas référencer directement MonChamp via la propriété du datarow typé, en écrivant par exemple dans le code du dataform qqchose comme :
MonDataset.MaTable.Rows(0).MonChamp = "toto"
J'ai une erreur de type (et évidemment la complétion ne propose pas "MonChamp")
En revanche sur le test suivant :
--------------------------------------------------------------------------------------------------- If objMonDataset.MaTable.Rows(0).GetType.Name = "MaTableRow" Then MsgBox("ok") CType(objMonDataset.MaTable.Rows(0), MonDataset.MaTableRow).MonChamp = "toto" Else MsgBox("ko") End If ---------------------------------------------------------------------------------------------------
là, ça compile, et à l'exécution j'obtiens bien "ok" mais le cast échoue.
Je ne suis pas encore rentré dans le détail du code généré mais j'aimerais déjà savoir si le pb est général.
D'avance merci.
Patrice
Patrice Ongla
Bon, la réponse dans la doc tout bêtement : la syntaxe c'est "objMonDataset.MaTable(0).MonChamp" et non "objMonDataset.MaTable.rows(0).MonChamp".
Merci le bouquin de Wrox d'écrire n'importe quoi.
Cela dit je trouve ça pas très net quand même...
"Patrice Ongla" a écrit dans le message de news: 4206ae26$0$520$
2 précisions : 1) Après redémarrage de VS, le cast n'échoue plus. 2) L'erreur de type sur l'expression "MaTable.Rows(0).MonChamp" est : 'MonChamp' n'est pas un membre de 'System.Data.DataRow'." A la compilation, le compilateur voit donc "objMonDataset.MaTable.Rows(0)", instance de "MaTableRow", comme une instance de sa superclasse "Datarow" alors qu'à l'exécution il vous dit que objMonDataset.MaTable.Rows(0).GetType.Name = "MaTableRow"
Bizarre quand même... Y'a sûrement une explication simple mais je sèche...
"Patrice Ongla" a écrit dans le message de news: 42069e4e$0$505$
Bonsoir à tous,
Je viens d'observer un truc qui m'étonne.
Lors d'un test, j'ai généré un dataform avec l'assistant sur une connexion Access. L'assistant m'a généré un dataset typé, "MonDataset". Il ne comporte qu'une seule table "MaTable", laquelle a un seul champ "MonChamp" de type string (à l'image de ma table de test dans la base Access). Eh bien je ne peux pas référencer directement MonChamp via la propriété du datarow typé, en écrivant par exemple dans le code du dataform qqchose comme :
MonDataset.MaTable.Rows(0).MonChamp = "toto"
J'ai une erreur de type (et évidemment la complétion ne propose pas "MonChamp")
En revanche sur le test suivant :
--------------------------------------------------------------------------------------------------- If objMonDataset.MaTable.Rows(0).GetType.Name = "MaTableRow" Then MsgBox("ok") CType(objMonDataset.MaTable.Rows(0), MonDataset.MaTableRow).MonChamp = "toto" Else MsgBox("ko") End If ---------------------------------------------------------------------------------------------------
là, ça compile, et à l'exécution j'obtiens bien "ok" mais le cast échoue.
Je ne suis pas encore rentré dans le détail du code généré mais j'aimerais déjà savoir si le pb est général.
D'avance merci.
Patrice
Bon, la réponse dans la doc tout bêtement : la syntaxe c'est
"objMonDataset.MaTable(0).MonChamp"
et non
"objMonDataset.MaTable.rows(0).MonChamp".
Merci le bouquin de Wrox d'écrire n'importe quoi.
Cela dit je trouve ça pas très net quand même...
"Patrice Ongla" <ongla@free.fr> a écrit dans le message de news:
4206ae26$0$520$636a15ce@news.free.fr...
2 précisions :
1) Après redémarrage de VS, le cast n'échoue plus.
2) L'erreur de type sur l'expression "MaTable.Rows(0).MonChamp" est :
'MonChamp' n'est pas un membre de 'System.Data.DataRow'."
A la compilation, le compilateur voit donc
"objMonDataset.MaTable.Rows(0)", instance de "MaTableRow", comme une
instance de sa superclasse "Datarow" alors qu'à l'exécution il vous dit
que
objMonDataset.MaTable.Rows(0).GetType.Name = "MaTableRow"
Bizarre quand même... Y'a sûrement une explication simple mais je sèche...
"Patrice Ongla" <ongla@free.fr> a écrit dans le message de news:
42069e4e$0$505$636a15ce@news.free.fr...
Bonsoir à tous,
Je viens d'observer un truc qui m'étonne.
Lors d'un test, j'ai généré un dataform avec l'assistant sur une
connexion Access. L'assistant m'a généré un dataset typé, "MonDataset".
Il ne comporte qu'une seule table "MaTable", laquelle a un seul champ
"MonChamp" de type string (à l'image de ma table de test dans la base
Access).
Eh bien je ne peux pas référencer directement MonChamp via la propriété
du datarow typé, en écrivant par exemple dans le code du dataform qqchose
comme :
MonDataset.MaTable.Rows(0).MonChamp = "toto"
J'ai une erreur de type (et évidemment la complétion ne propose pas
"MonChamp")
En revanche sur le test suivant :
---------------------------------------------------------------------------------------------------
If objMonDataset.MaTable.Rows(0).GetType.Name = "MaTableRow" Then
MsgBox("ok")
CType(objMonDataset.MaTable.Rows(0), MonDataset.MaTableRow).MonChamp =
"toto"
Else
MsgBox("ko")
End If
---------------------------------------------------------------------------------------------------
là, ça compile, et à l'exécution j'obtiens bien "ok" mais le cast échoue.
Je ne suis pas encore rentré dans le détail du code généré mais
j'aimerais déjà savoir si le pb est général.
Bon, la réponse dans la doc tout bêtement : la syntaxe c'est "objMonDataset.MaTable(0).MonChamp" et non "objMonDataset.MaTable.rows(0).MonChamp".
Merci le bouquin de Wrox d'écrire n'importe quoi.
Cela dit je trouve ça pas très net quand même...
"Patrice Ongla" a écrit dans le message de news: 4206ae26$0$520$
2 précisions : 1) Après redémarrage de VS, le cast n'échoue plus. 2) L'erreur de type sur l'expression "MaTable.Rows(0).MonChamp" est : 'MonChamp' n'est pas un membre de 'System.Data.DataRow'." A la compilation, le compilateur voit donc "objMonDataset.MaTable.Rows(0)", instance de "MaTableRow", comme une instance de sa superclasse "Datarow" alors qu'à l'exécution il vous dit que objMonDataset.MaTable.Rows(0).GetType.Name = "MaTableRow"
Bizarre quand même... Y'a sûrement une explication simple mais je sèche...
"Patrice Ongla" a écrit dans le message de news: 42069e4e$0$505$
Bonsoir à tous,
Je viens d'observer un truc qui m'étonne.
Lors d'un test, j'ai généré un dataform avec l'assistant sur une connexion Access. L'assistant m'a généré un dataset typé, "MonDataset". Il ne comporte qu'une seule table "MaTable", laquelle a un seul champ "MonChamp" de type string (à l'image de ma table de test dans la base Access). Eh bien je ne peux pas référencer directement MonChamp via la propriété du datarow typé, en écrivant par exemple dans le code du dataform qqchose comme :
MonDataset.MaTable.Rows(0).MonChamp = "toto"
J'ai une erreur de type (et évidemment la complétion ne propose pas "MonChamp")
En revanche sur le test suivant :
--------------------------------------------------------------------------------------------------- If objMonDataset.MaTable.Rows(0).GetType.Name = "MaTableRow" Then MsgBox("ok") CType(objMonDataset.MaTable.Rows(0), MonDataset.MaTableRow).MonChamp = "toto" Else MsgBox("ko") End If ---------------------------------------------------------------------------------------------------
là, ça compile, et à l'exécution j'obtiens bien "ok" mais le cast échoue.
Je ne suis pas encore rentré dans le détail du code généré mais j'aimerais déjà savoir si le pb est général.