Zum Inhalt springen

LINQ to Dataset - Was mach' ich falsch?


Gooner85

Empfohlene Beiträge

Hallo zusammen,

ich habe folgende Query mittels LINQ in VB.net erstellt:


Dim DaSe As New System.Data.DataSet()

Dim DaTa As DataTable


Dim cmd As New System.Data.SqlClient.SqlCommand

cmd.Connection = Con

cmd.CommandText = "SELECT * FROM Personen"

Dim Ada As System.Data.SqlClient.SqlDataAdapter = _ 

New System.Data.SqlClient.SqlDataAdapter(cmd)

Ada.Fill(DaSe)

Con.Close()


DaTa = DaSe.Tables("Tab1")


Dim query = From T In DaTa.AsEnumerable _

Where T.Field(Of Integer)("ID") = 1 _

Select T.Field(Of String)("Nachname")


DataGridView1.DataSource = query

Leider erhalte ich kein Ergebnis!

Meine Imports sind:

Imports System.IO

Imports System.Data

Imports System.Linq

Imports System.Data.Linq

Imports System.Data.DataTableExtensions

Wo liegt mein Fehler?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Er lässt sich zwar kompelieren, jedoch habe ich keine Ausgabe in meinem GridView erhalten.

Ich habe das Problem jetzt allerdings anders gelöst und bin auf LINQ to SQL umgestiegen. Damit funktioniert es jetzt:


        Dim db As New DataClasses1DataContext


        Dim query = From T In db.Personen _

        Where T.E_Mail IsNot Nothing _

        Select T


        DataGridView1.DataSource = query

Link zu diesem Kommentar
Auf anderen Seiten teilen

Gibt es auch eine Möglichkeit, einem DataGridView zwei Abfragen als Datasource zu übergeben, etwa so:


Dim db As New DataClasses1DataContext


        Dim query1 = From T In db.Personen _

        Where T.E_Mail IsNot Nothing _

        Select T


        Dim query2 = From T In db.Personen _

        Where T.E_Mail Is Nothing And _

        (T.Anschrift IsNot Nothing And T.Ort IsNot Nothing And T.Postleitzahl _

        IsNot Nothing) _

        Select T


DataGridView1.DataSource = query1 + query2

Obiges Beispiel funktioniert natürlich nicht!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Es geht darum, dass ich zwei seperate Abfragen habe.

Die eine Abfrage gibt Datensätze zurück, die eine E-Mail Adresse besitzen, die zweite Abfrage, die keine E-Mail Adresse sondern nur Post-Adressen beinhalten.

Ich möchte nun gerne in meinem DataGridView beide Abfragen zusammenführen.

Sollte doch möglich sein oder?

Link zu diesem Kommentar
Auf anderen Seiten teilen

keine ahnung, aber das ergebnis wird dasselbe sein, meinst du nicht?

Ob er dir nun zuerst die einen Datensätze holt und danach die anderen, oder gleich beide zusammen.. Ich glaube das ist gehupft wie gesprungen.

Oder willst du die Abfragen zu unterschiedlichen Zeitpunkten separat aufrufen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Es sollte eigentlich auf drei Möglichkeiten hinauslaufen:

1. Datagridview zeigt nur die Datensätze der ersten Abfrage an

2. Datagridview zeigt nur die Datensätze der zweiten Abfrage an

3. Datagridview zeigt die Datensätze beider Abfragen an

Ich habe es jetzt mittels UNION gelöst:


Dim Query = query1.Union(query2)

DataGridView1.DataSource = Query

Funktioniert wunderbar

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...