Announcement

Collapse
No announcement yet.

Datenabfrage in eine Variable

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

  • Datenabfrage in eine Variable

    Habe ein kleines Problem bei meinem Programm.
    Möchte über einen DataTable (... oder LINQ / geht auch)
    aus einer View ein Datum in eine Variable speichern.

    Datenbankanbindung etc. ... kein Problem , aber wie bekomme ich das "einzelne" Datum dann in eine Variable ?

    Habe gegoogelt aber alles was ich finde sind Consolen oder GridView Lösungen ...

    Zuletzt editiert von Thomas Stönner; 21.03.2010, 16:16.

  • #2
    Hallo Thomas,

    tut mir leid, ich verstehe nur Bahnhof. Wo steht das Datum bisher? Wo soll es landen? In welchem Zusammenhang (View hat viele Bedeutungen, meinst du wirklich GridView von ASP.NET)? Wieso kann es ein Problem geben, einer DateTime-Variablen einen Wert zuzuweisen?

    Offensichtlich hast du reichlich Vorkenntnisse. Wenn du jetzt ein Problem hast, müsstest du es doch besser beschreiben können.

    Gruß Jürgen

    Comment


    • #3
      Auf dem SQL Server habe ich eine View gebaut die das letzte Datum meiner importierten Daten beinhaltet :

      [highlight=sql]SELECT MAX(DISTINCT cam_erstellt) AS fiterdate
      FROM dbo.tbl_cam
      WHERE (cam_ready = 1)[/highlight]

      Also nur eine Zeile

      Jetzt möchte ich diesen Wert in eine Variable packen damit ich diese in einer Schleife als Filter benutzen kann.

      Ich habe schon einiges ausprobiert,aber ich bekomme es einfach nicht hin den date wert einer Variablen zuzuordnen.

      Also an dieser Stelle versagen meine Kenntnisse ...

      Beispiel LINQ ...

      [highlight=vbnet]Dim var = From varcam In dbmessdat.View_last Select varcam.fiterdate[/highlight]

      ... Ergebniss > in Variable AS DATE
      Zuletzt editiert von Jürgen Thomas; 21.03.2010, 18:38. Reason: [highlight] eingefügt, bitte künftig selbst machen

      Comment


      • #4
        Hallo Thomas,

        über Linq weiß ich nichts, aber mit ADO.NET geht es relativ einfach (hier in Pseudo-C#-Code, weil ich die VB-Schreibweisen nicht gut genug kenne):
        Code:
        using(SqlConnection conn = new SqlConnection(connectionString)
           SqlCommand cmd = new SqlCommand("SELECT fiterdate from VIEWname", conn )
           conn.Open
           DateTime result = Convert.ToDateTime(cmd.ExecuteScalar())
        end using
        Statt Convert.ToDateTime ist besser die CType-Funktion von VB zu benutzen.

        Gruß Jürgen

        Comment


        • #5
          Probier ich gleich mal aus ...

          P.s das conn.close soolte man noch setzen

          Comment


          • #6
            Originally posted by Thomas Stönner View Post
            P.s das conn.close soolte man noch setzen
            Das ist überflüssig (genauer: es geht automatisch), wenn man es innerhalb eines using-Blocks benutzt. Jürgen

            Comment


            • #7
              Juchhu ... manchmal is man ja nür "blöd"

              So hier das ganze in vb.net

              Ermitteln des letzten bekannten "importierten" Datensatzes und diesen einer Variable zuordnen :

              View auf SQL erstellen :

              [highlight=sql] SELECT MAX(DISTINCT [ERSETLLDATUMS-FELD]) AS [Spatenbezeichnung]
              FROM [TABELLENNAME]
              WHERE ([FILTER]) ' nach bedarf
              [/highlight]

              vb.net :
              [highlight=vbnet]
              Dim connectionString As String = My.Settings.[Name]ConnectionString
              Using con As New SqlConnection(connectionString)
              con.Open()

              Dim strSQL As String = "SELECT [Spaltenname] FROM [Viewname] "
              Dim cmd As SqlCommand = New SqlCommand(strSQL, con)
              [Variable] = Convert.ToDateTime(cmd.ExecuteScalar())
              con.Close()

              End Using
              [/highlight]

              Danke Jürgen ... hast was Gut
              Zuletzt editiert von Thomas Stönner; 21.03.2010, 19:44.

              Comment

              Working...
              X