2009-08-04 7 views
1

Je dois créer deux tables.Créer une table à partir de données DataTable/Dataset existantes avec ADO.net?

Le premier que je peux obtenir via la base de données avec une commande. Pas de transpiration. Le second est construit à partir du premier avec des instructions SELECT imbriquées, des JOINs et des opérateurs tels que SUM, AVG, etc Il a donc besoin de plus de fonctionnalités que le filtrage et le tri. Il est fait en C# avec .NET 2.0, donc pas de fonctionnalités avancées disponibles.

Essentiellement, je peux exécuter une deuxième commande, mais je me demande si je peut contourner cela si j'ai déjà toutes mes données nécessaires disponible dans un DataTable/Dataset?

Je suis conscient que je peux créer et remplir une nouvelle table manuellement, mais qui serait fastidieux et sujette aux erreurs.

J'ai besoin de les deux tables et la base de données ne doit pas être influencée. La solution doit utiliser uniquement ADO.NET, il n'y a pas d'autres outils SQL Server ou installés.

Y a-t-il un moyen de créer une nouvelle table avec les instructions SQL-Like sur les données déjà existantes localement et si oui, quelles sont les limitations?

Répondre

0

Sans des détails, il est difficile de répondre à votre question, mais vous devriez regarder dans Filtering and Sorting. Cela vous permet de créer des vues de votre dataset sans requérir la source de données.

0

Peut-être que vous devriez regarder LINQ. Linq-to-datasets est standard et vous permet d'interroger un objet DataTable [n en-mémoire] avec une syntaxe de type SQL.

Il ressemble à ceci (simple filtrage):

var result = from row in yourDataTable.AsEnumerable() 
    where row.Field<string>("FieldName").Contains("Something") 
    select row; 

agrégations/jointures sont également autorisés. Voici un official reference de Microsoft.

+0

Bonne idée. Malheureusement, je suis coincé avec .NET 2.0 –

+0

Si .NET 2.0, vous pouvez utiliser [LinqBridge] (http://www.albahari.com/nutshell/linqbridge.aspx) pour la fonctionnalité LINQ. –

+1

Vous pouvez utiliser d'autres fonctionnalités 3.5 dans .NET 2.0. Consultez: http://abdullin.com/journal/2008/12/23/how-to-use-net-35-features-and-c-30-syntax-in-net-20.html –

Questions connexes