2009-02-05 6 views
0

J'utilise ensemble de données fortement typé comme un ORM pour envelopper dans ma base de données Microsoft Access, maintenant je suis à la recherche d'un moyen de créer un équivalent deComment utiliser un concepteur de dataset fortement typé pour configurer plusieurs mises à jour?

UPDATE table1 
SET table1.nationality = 'england' 
WHERE table1.nationality in (SELECT table2.nationality 
          FROM table2 
          WHERE table2.gender ='M'); 

Dans un concepteur de jeu de données fortement typé, mais pas sûr que cela est possible ou non.

Si ce n'est pas possible, quelle est la meilleure façon d'accomplir cette tâche? J'évite

  1. -code SQL main
  2. Procédures stockées

autant que je peux.

Édition: Je ne dis pas que le code SQL manuel n'est pas autorisé, mais que ce n'est pas souhaitable. La même chose vaut pour les procédures stockées.

Répondre

0

utilisez-vous un adaptateur de table?

si oui, pouvez-vous pas seulement un clic droit et choisissez Ajouter une requête, sélectionnez une nouvelle instruction Select/Mise à jour/SQL, puis entrez

UPDATE table1 SET 
    table1.nationality = @nationality 
WHERE table1.nationality in (
    select table2.nationality 
    from table2 
    where table2.gender = @gender 
) 

et lui donner un nom approprié? Cela devrait générer une méthode table adaptateur comme

updateNationalityByGender(string nationality, string gender) 

vous aurez besoin d'utiliser l'espace de noms pour l'adaptateur de table pour y avoir accès, par exemple

using your.name.space.datasetname.datasetnametableadapter; 
+0

J'ai essayé, mais ça n'a pas – Graviton

+0

@ [Ngu Bientôt Hui]: ce qui ne fonctionnait pas à ce sujet? cela fonctionne bien sur ma machine - mais j'utilise SQL Server, pas d'accès ... –

+0

@ [Ngu Soon Hui]: et en passant, downvoting ne m'encourage pas vraiment à continuer à essayer de vous aider ;-) –

0

LINQ to DataSet serait votre meilleure option.

1) Tout est fortement typé.
2) Vous pouvez utiliser IQueryable/LINQ/lambda pour interroger
3) Vous pouvez lier à une base de données Access

Sql Express est gratuit et il serait préférable d'utiliser. Mais si j'étais obligé d'utiliser Access, c'est comme ça que je le ferais.

http://msdn.microsoft.com/en-us/library/bb386977.aspx

2

Comme steven Un faible dit .. mais vous utilisez accès MS .. donc params doit être "?

Adaptateur droit de la souris et choisissez Ajouter une requête, sélectionnez une nouvelle instruction Select/Mise à jour/SQL, puis entrez

UPDATE table1 SET 
    table1.nationality = ? 
WHERE table1.nationality in (
    select table2.nationality 
    from table2 
    where table2.gender = ? 
) 

lui donner un nom approprié, par exemple. updateNationalityByGender

updateNationalityByGender(string nationality, string gender) 
Questions connexes