2011-08-23 2 views
0

Je convertis un code de rapport qui utilise beaucoup de SQL dynamique roulé à la main pour utiliser plutôt des jeux de données dynamiques, mais il y a encore de nombreuses occasions de requêtes et d'insertions ad-hoc. Le code actuel utilise par ex. une GetDataRow méthode statique dans clsFunctions (oui, je sais, l'horreur!), mais je voudrais déplacer cette fonction à la couche de données que j'établis. Pour faire cela une méthode d'extension sur mes adaptateurs de table typés me vient à l'esprit, car ils ont une propriété de connexion définie, donc je sais que j'utiliserais toujours la même connexion que les autres codes d'accès, mais les adaptateurs de table tapés pour ajouter la méthode à, car ils dérivent tous de Component, et ont leurs fonctions 'partagées' générées.Où dois-je déclarer une méthode générale GetDataRow dans un DataSet typé?

Où devrais-je placer ma méthode GetDataRow, dans ma couche de données basée sur un jeu de données?

Répondre

0

Étant donné que les adaptateurs de table dynamiques sont des classes partielles, créez simplement une autre classe partielle pour ajouter vos fonctions spéciales au tableadapter.

Dans cet exemple, j'ai un jeu de données appelé "dsMain" et un tableadapter pour une table "Document".

namespace dsMainTableAdapters 
{ 
    public partial class DocumentTableAdapter 
    { 
     public dsMain.DocumentRow GetDataRow() 
     { 
      System.Data.SqlClient.SqlConnection oconn = this.Connection; 

      //now Run your custom code on the connection 

     } 
    } 
} 

Vous devriez maintenant avoir une nouvelle méthode dans votre tableadapter appelée "GetDataRow".

Tant que vous utilisez l'espace de noms EXACT de vos tableadapters de dataset et le nom de classe EXACT pour votre tableadapter, vous devriez être capable d'accéder à l'objet de connexion pour ce que vous voulez.

Questions connexes