Announcement

Collapse
No announcement yet.

LINQ-Abfrage funktioniert nicht!?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • LINQ-Abfrage funktioniert nicht!?

    Hallo zusammen,

    seit kurzem beschäftige ich mich mit LINQ. Ich habe bereits einiges dazu gelesen und mich auch ausführlich informiert, jedoch habe ich bisher keinen Erfolg.
    Es scheitert schon daran, das es mir nicht gelingt, eine vernünftige Abfrage zu formulieren, ohne das Visual Stuido meckert.



    Im Augenblick sitze ich vor folgendem Code:

    Code:
    Imports System.Data
    Imports System.Data.Linq.DataContext
    Imports System.Data.SqlClient
    Public Class Form1
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
            'Connection
            Dim Con As System.Data.SqlClient.SqlConnection = New Data.SqlClient.SqlConnection _
            ("Data Source=K47;Initial Catalog=Hotel_alex; Integrated Security=True; Connect Timeout=1")
    
            'Command
            Dim cmd As New Data.SqlClient.SqlCommand
            cmd.Connection = Con
            cmd.CommandText = "SELECT * FROM Personen"
    
            'Adapter
            Dim Ada As System.Data.SqlClient.SqlDataAdapter = New Data.SqlClient.SqlDataAdapter(cmd)
    
            Dim DaSe As New System.Data.DataSet
    
            Ada.Fill(DaSe, "Person")
    
            Dim DaTa As DataTable
    
            DaTa = DaSe.Tables("Person")
    
            Dim Query = _
            From Person In DaTa.AsEnumerable() _
            Where Person.Field(Of String)("Mail")<>DBNull.Value _
            Select Person
    
            Dim dv As Data.DataView = Query.AsDataView()
            DataGridView1.DataSource = dv
    
        End Sub
    End Class
    Ich lade eine Tabelle in ein DataSet und möchte dann mittels LINQ alle Zeilen in einem DataGridView angezeigt bekommen, in denen der Wert der Spalte "Mail" nicht NULL ist.

    Leider wird die Abfrage in dieser Form vom VS 05 nicht akzeptiert.

    Was mache ich falsch???

  • #2
    Hallo!

    LinQ..? also ich würde das ganze anders angehen, ich kann dir nur sagen wie ich LinQ verwende...

    Füge deinem Projekt eine neue Datei vom typ "LINQ und SQL-Klassen" hinzu.
    Als Beispiel verwenden wir hier mal als Name:
    "dcTest.dbml" -> dc=Datacontext

    Jetzt öffnet sich der O/R-Designer, welchsle eventuell von der ToolBox in den Serverexplorer
    Hier fügst du eine Verbindung hinzu... Die Datenbank welche dann sichtbar ist erweitern und die benötigten Tabellen auf den O/R-Designer ziehen...
    (Die eventuell kommende Frage bzgl. der Speicherung der Anmeldedaten kannst du verneinen)

    Nun zum code...

    bsp: In dieser DB gibt es eine Tabelle namens "Test" mit den Spalten "Vorname","Nachname".

    Verbindung im code herstellen:
    Code:
    dcTestDataContext=New dcTestDataContext(ConnectionString)

    Abfrage bsp. Aller Namen:
    Code:
    Dim Ergebnisse = From AlleInTest in dcTestDataContext.Test
    for each Ergebnis in Ergebnisse
     msgbox("Vorname:" & Ergebnis.Vorname & vbcrlf & "Nachname:" & Ergebnis.Nachname)
    next
    oder sortiert...
    Code:
    Dim Ergebnisse = From AlleInTest in dcTestDataContext.Test order by AlleInTest.Nachname
    oder mit bedingung:
    Code:
    Dim Ergebnisse = From AlleInTest in dcTestDataContext.Test where AlleInTest.Vorname="Gustl" order by AlleInTest.Nachname

    ...ich hoffe ich konnte helfen.

    gruß cad

    Comment

    Working...
    X