Ca tombe bien! Y'a pas besoin de diplômes pour lire la doc!
http://msdn.microsoft.com/en-us/library/9b9dty7d.aspx
Ca tombe bien! Y'a pas besoin de diplômes pour lire la doc!
http://msdn.microsoft.com/en-us/library/9b9dty7d.aspx
Retrouvez moi sur :
Mon Espace Developpez.com------------------------------- Dvp.NET, une librairie open-source de composants .NET
Mon blog: Up there in the code---------------------------- Twitter: NatMarchand
Ma société: So@t
Showrizo : Suivez votre planning de séries télé sous Windows 8
Ne soit pas sarcastique comme ça.
Un tableau de int je sais faire (quand même !) mais un tableau de SQLParameter, je vois même pas par quel bout le prendre, c'est là mon souci.
Mon blog de création d'univers : Qualhiryann
Mon site qui parle de moi www.ozouf.com
Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.
Ben pour le coup, je sais pas quoi répondre car il n'y a pas de différences entre les deux
Retrouvez moi sur :
Mon Espace Developpez.com------------------------------- Dvp.NET, une librairie open-source de composants .NET
Mon blog: Up there in the code---------------------------- Twitter: NatMarchand
Ma société: So@t
Showrizo : Suivez votre planning de séries télé sous Windows 8
Ben répondre un truc dans ce gout là aurait été sympa :
Mais je crois voir que le C# est réservé à une élite, merci, je m'en souviendrais.
Code : Sélectionner tout - Visualiser dans une fenêtre à part SqlParameter[] parameter = { new SqlParameter(...), new SqlParameter(...), new SqlParameter(...) };
Mon blog de création d'univers : Qualhiryann
Mon site qui parle de moi www.ozouf.com
Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.
Comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SqlCommand cmd = new SqlCommand(""); SqlParameter[] sp = new SqlParameter[1]; sp[0] = new SqlParameter("@ID", 123); sp[1] = new SqlParameter("@NAME", "Immobilis"); cmd.Parameters.AddRange(sp);
"Winter is coming" (ma nouvelle page d'accueil)
Merci Immobilis, c'est beaucoup plus clair comme ça et en plus, l'exemple que j'ai trouvé est visiblement pas bon.
Toutefois, décidément, y a plein de truc que je comrpends pas, ça veut toujours pas le prendre. J'ai relu le code trois fois pour être sur de ne pas avoir fait de faute de syntaxe et je vois pas pourquoi ça passe pas. Je comprends pas le terme "instance".
Donc le code est là pour le moment :
Donc, un tableau de SQLParameter (y en a qu'un seul, mais c'est pas grave) visiblement correctement mis en place et un appel à la fonction avec les argument correct.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SqlParameter[] LParam = new SqlParameter[0]; LParam[0] = new SqlParameter("urlsite", urlsite); DataTable VerifSite = new SystemC.AccessData().RetournerTable("EXEC CORE_VerifSiteExiste @urlsite",LParam);
Ben à la compilation il me dit cela :
Et là, Instance, type..... ???Erreur 1 Le membre 'SystemC.AccessData.RetournerTable(string, System.Data.SqlClient.SqlParameter[])' est inaccessible avec une référence d'instance*; qualifiez-le avec un nom de type D:\inetpub\SystemC\Default.aspx.cs 31 31 http://www.systemc.maison/
Désolé, mais je capte pas un brock de ce qu'il voudrait avoir.
Mon blog de création d'univers : Qualhiryann
Mon site qui parle de moi www.ozouf.com
Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.
Y'a pas une histoire d'élite, y'a juste faire les trucs dans l'ordre... Apprendre les bases quand on commence peut être un bon début. Je n'ai jamais fait de C# à l'école, vaguement du Java de loin mais même pas de quoi avoir le niveau d'un débutant. Mon niveau actuel je le dois au fait que j'ai lu des bouquins et tutos sur les bases avant de me lancer.
Si je suis aussi sarcastique c'est qu'on en est à la 6è page de ce fil et que je suis pas sur qu'il y ait une seule réponse qui ne soit pas documenté sur la doc (tant sur la syntaxe C# que sur les membres d'une classe...). Alors la première fois, je veux bien expliquer quel est la syntaxe d'un catch en attachant un lien vers la doc mais au bout d'un moment je peux pas lire toute la doc à ta place.
Retrouvez moi sur :
Mon Espace Developpez.com------------------------------- Dvp.NET, une librairie open-source de composants .NET
Mon blog: Up there in the code---------------------------- Twitter: NatMarchand
Ma société: So@t
Showrizo : Suivez votre planning de séries télé sous Windows 8
La encore, je te renvois vers le tutoriel http://tahe.developpez.com/dotnet/csharp/ car c'est essentiel de comprendre la différence entre un objet, classe, type, instance. A vrai dire, c'est même une question éliminatoire pour un entretien pour un poste de développeur (que ca soit VB.Net, C#, C++ ou Java).
C'est toujours pas pour paraitre prétentieux, c'est juste que c'est vraiment la base quoi...
Pour la réponse à la question, je dirais que tu as qualifié ta méthode comme statique et que par conséquent tu ne peux pas l'appeller avec une instance de ta classe. Il faut par conséquent transformer ta méthode en une méthode d'instance ou ne pas l'appeller sur une instance.
Retrouvez moi sur :
Mon Espace Developpez.com------------------------------- Dvp.NET, une librairie open-source de composants .NET
Mon blog: Up there in the code---------------------------- Twitter: NatMarchand
Ma société: So@t
Showrizo : Suivez votre planning de séries télé sous Windows 8
Arf, c'est parce que la méthode RetournerTable est statique. Essaye
Code : Sélectionner tout - Visualiser dans une fenêtre à part DataTable VerifSite = SystemC.AccessData.RetournerTable("EXEC CORE_VerifSiteExiste @urlsite",LParam);
"Winter is coming" (ma nouvelle page d'accueil)
Merci Immobilis.
Bon, j'ai viré le static dans la définition de la fonction et du reste, je ne sais pas ce qu'il est venu faire là, mon autre fonction pour retourner une valeur scalaire ne l'a pas. Faut d'inatention ou copier coller furieux.....
Maintenant tout fonctionne, je vais pouvoir me concentrer sur le montage de la page.
Par contre, juste un détail par rapport à ton code sur le montage d'un tableau de SQLParameter. Je reprends le code pour mémoire :
Là tu définis à tableau et avec le chiffre 1 entre crochet à la première ligne tu dis que le tableau va contenir une seule ligne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SqlParameter[] sp = new SqlParameter[1]; sp[0] = new SqlParameter("@ID", 123); sp[1] = new SqlParameter("@NAME", "Immobilis");
Donc, litérallement ton code présenté là serait faux, c'est bien ça ?
Parce que j'ai suivi l'idée et j'avais mis 0 mais il m'a fait une erreur OutOfRange. Du coup, j'ai mis 1 et c'est mieux passé.
C'est juste pour confirmer et être sûr d'avoir compris le binioux, les tableaux c'est pas mon fort.
Encore merci Immobilis
Mon blog de création d'univers : Qualhiryann
Mon site qui parle de moi www.ozouf.com
Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.
"Winter is coming" (ma nouvelle page d'accueil)
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Pour l'histoire du static/instance : ta méthode RetournerTable n'a aucune raison d'être statique, surtout que les autres méthodes de la classe ne le sont pas...
Pour résumer : une instance d'une classe, c'est juste une "réalisation" de cette classe. Une classe est en quelque sorte un "moule", une instance est un "gateau" que tu sors de ce moule... Avec un seul moule, tu peux faire autant de gateaux que tu veux.
Un membre (méthode, propriété, etc) statique d'une classe n'est pas lié à une instance de la classe, c'est un membre de la classe elle-même. Par exemple :
La méthode Titi est statique, tu l'appelles directement via le nom de la classe : Toto.Titi();. Par contre, Tata est une méthode d'instance (non-statique), il te faut donc une instance de la classe pour l'appeler : Toto x = new Toto(); x.Tata();. Les méthodes d'instance ont accès aux autres membres de l'instance courante, ce qui n'est pas le cas des méthodes statiques (puisqu'il n'y a pas d'instance).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 class Toto { public static void Titi() { } public void Tata() { } }
Sinon pour l'histoire du tableau de SqlParameter : pour simplifier un peu l'écriture, tu peux déclarer la méthode avec un nombre variable de paramètres :
Comme ça lors de l'appel tu peux passer directement les paramètres, sans les mettre explicitement dans un tableau :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public DataTable RetournerTable(string rq, params SqlParameter[] param) { ... }
Ah, et encore un truc : évite d'écrire du code comme ci-dessus, où tu appelles une méthode sur un objet que tu crées dans la même instruction. Ca réduit la lisibilité, et ça a tendance à te faire oublier que tu viens de créer une instance de la classe... Utilise plutôt des variables intermédiaires :
Code : Sélectionner tout - Visualiser dans une fenêtre à part new Dmanager("DataDev").RetournerTable("SELECT ...", new SqlParameter(...), new SqlParameter(...), ...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Dmanager db = new Dmanager("DataDev"); DataTable table = db.RetournerTable(....);
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Meci Tomlev, ton explication "patissière" est trés claire, j'aime beaucoup et j'ai bien compris.
Un mot sur le static : comme j'ai dis, je n'ai aucune idée de pourquoi il s'est retrouvé là, il n'aurait jamais du y être.
Un autre mot sur nombre d'élément du tableau : en VB c'est pareil, c'est le nombre d'élément (ou la borne supérieure) que l'on spécifie à cet endroit.
Je vais boucler ce topic qui devient un peu trop long et s'éparpille un poil.
Aujourd'hui je plonge dans le coeur de mon système, maintenant que j'ai les outils de base traduit en C# je devrais pouvoir m'en sortir et rencontrer d'autre souci.
Je vais manipuler la page elle-même et je vais m'exposer à des choses un peu nouvelle car je vais tenter d'optimiser ce que je faisais en VB. Aprés trois ans d'utilisation de mon système j'ai vu des trucs qui me perturbaient. Du coup, je vais tenter de faire du ménage pour être plus logique et surtout plus direct dans mon code.
Par exemple, j'avais une classe PageY qui n'était appellée qu'une seule fois à partir de ma page Default.aspx. Je pense intégrer le code de cette classe directement dans le codeBehind de la page, vu que c'est la seule et unique page du site.
J'avais pensé à faire une vraie classe page dérivant de l'objet Page du FrameWork, mais je n'en vois pas l'intérêt tel que mon système est pensé.
Et aussi, je vais tâter du MemberShip, mais là, j'ai encore à apprendre je crois, parce que, même en VB, j'ai pas encore compris la profondeur de la bestiole.
Conclusion : merci à tout pour votre gentillesse et votre patience.
Mon blog de création d'univers : Qualhiryann
Mon site qui parle de moi www.ozouf.com
Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.
Bah non, c'est pas pareil... si tu veux déclarer un tableau de 10 éléments en C#, tu fais ça :
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part int[] tableau = new int[10];
Alors qu'en VB tu fais ça :
(si tu mets 10 tu obtiens un tableau de 11 éléments)
Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part Dim tableau(9) As Integer
Donc en VB c'est bien la borne supérieure et non le nombre d'éléments...
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
De mémoire du VB6 (ça remonte à loin, très loin), il n'y a pas une histoire de
qui dit si le tableau doit commencer à 0 ou à 1 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part OPTION BASE 0 | 1
Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...
Une réponse vous a aidé ? utiliser le bouton
"L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel
Si si, c'est bien ça. Par défaut c'est 0.
Et les propos de tomlev sont juste aussi (sauf dans le cas où on indique Option Base 1, ce qui est, je crois, assez rarement utilisé).
Oui, mais cette option n'existe plus en VB.NET, les index commencent toujours à 0 (sauf cas très particulier en utilisant cette surcharge de Array.CreateInstance, mais il n'y a pas de support direct dans le langage (que ce soit en VB ou en C#) pour les tableaux qui ne commencent pas à 0)
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager