tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
4437
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    BeLoW_ZeRo BeLoW_ZeRo ist offline Rookie
    Registriert seit
    Sep 2003
    Beiträge
    5
    Hallo,

    ich habe mit Visual Studio 2005 ein neues Projekt erstellt. Diesem Projekt habe ich per "Datenquelle hinzufügen" eine Datenbankverbindung zu einem SQL Server hinzugefügt. (Es wird eine Tabelle der Datenbank angezeigt)

    In der Datenquellenansicht habe ich jetzt unterhalb des TableAdapters noch eine SQL Abfrage eingebaut. Diese hat als executeMode = Scalar. D.h. ja so wie ich es verstanden habe, dass es nur den ersten Datensatz ausgibt. Funktioniert soweit auch. Aber wie mache ich es denn, wenn ich alle, oder vor allem nur bestimmte Datensätze ausgeben will?

    Mein Code bisher:

    Code :
    1
    2
    3
    4
    5
    
    Private Sub abfrage_ausfuehren()
            Dim personalnummer = 1141
            Dim test As New CMSDataSetTableAdapters.T_PRECORDTableAdapter
            MsgBox(test.abfrageField2)
    End Sub

    Ich würde eben jetzt gerne nur die Zeile ausgeben, die in der Spalte "nr" der "personalnummer" entspricht.

    Wie der SQL-befehl aussehen würde ist ja klar. Wie ich diesen vom Code aus auf meine Tabelle anwenden kann jedoch nicht.

    Bitte nicht schlagen
     

  2. #2
    BeLoW_ZeRo BeLoW_ZeRo ist offline Rookie
    Registriert seit
    Sep 2003
    Beiträge
    5
    Ich habs jetzt erstmal so gelöst, dass meine Funktion die Datenbank von oben bis unten durchsucht, bis die nr übereinstimmt. Bei einer großen Tabelle dauert das aber leider sehr lange. Daher würd ich mir von Anfang an gerne nur den einen entsprechenden Datensatz holen.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
    Private Sub abfrage_ausfuehren(ByVal personalnummer As Integer)
            Dim test As New CMSDataSet
            Dim tabelle As New CMSDataSetTableAdapters.T_PRECORDTableAdapter
            Dim anzahl_reihen = tabelle.GetData.Rows.Count
            'Bestimmten Datensatz ausgeben
            Dim i = 0
            Dim erfolg As Boolean
            erfolg = False
            Do
     
                Dim aktuelleNummer = tabelle.GetData().Rows(i).Item("PR_ID")
                If aktuelleNummer = personalnummer Then
                    TextBox1.Text = "Benutzer: " + tabelle.GetData().Rows(i).Item("PR_FIELD1") + " erhält Zugang"
                    'MsgBox("Benutzer: " + tabelle.GetData().Rows(i).Item("PR_FIELD1") + "erhält Zugang")
                    erfolg = True
                End If
                i = i + 1
     
     
            Loop Until erfolg = True
        End Sub
     

  3. #3
    lordraiddom lordraiddom ist offline Mitglied
    Registriert seit
    Sep 2006
    Ort
    Hamburg
    Beiträge
    21
    PHP-Code:
                         service.conn.Open()
                
    Dim cmd As New OleDbCommand
                cmd
    .Connection service.conn
                cmd
    .Parameters.Add("?"PW)
                
    cmd.CommandText "UPDATE Benutzer Set password=? WHERE user_name LIKE '" tb_user_for.Text.ToLower() & "'"
                
    cmd.ExecuteNonQuery()
                
    OleDA_User.UpdateCommand cmd
    service
    .conn.close() 
    PHP-Code:
            sql = New OleDbCommand("SELECT * FROM Benutzer WHERE Benutzer=' " tb_user_for.Text &" ' "service.conn)
            
    sql.CommandTimeout 30
            OleDA_User
    .SelectCommand sql
            OleDA_User
    .Fill(Ds_service1"Benutzer"
    Das sind Codeschnipsel aus meiner webapplikation, so update ich ein datensatz in der DB und im zweiten teil lade ich die DB tabelle in ein DataSet.


    ka evtl kannst du damit was anfangen
     

  4. #4
    Avatar von mage
    mage mage ist offline Mitglied Platin
    Registriert seit
    May 2002
    Ort
    Berliner Speckgürtel
    Beiträge
    707
    Entweder mit Parameter oder ohne eine Mischung ist sinnlos.
    Code vb:
    1
    2
    3
    
    cmd.Parameters.Add("?password", PW)
    cmd.Parameters.Add("?username", tb_user_for.Text.ToLower() & "*") 
                cmd.CommandText = "UPDATE Benutzer Set password=?password WHERE user_name LIKE ?username"
    Ein Like ohne den Wildkart * ist unnötigt, da man so sonst auf gleichheit testet. Da ist dann ein Vergleich angebracht.
    Ausserdem solltest du auch noch den Datentyp bei den Parameter mit angeben.
     
    Allen ist das Denken erlaubt, vielen bleibt es erspart. (Kurt Goetz)

  5. #5
    BeLoW_ZeRo BeLoW_ZeRo ist offline Rookie
    Registriert seit
    Sep 2003
    Beiträge
    5
    Hi,

    schonmal danke an euch. Aber wo habt ihr denn in eurer Lösung was mit Datasets gemacht?

    Gruß below
    Geändert von BeLoW_ZeRo (28.09.06 um 11:02 Uhr)
     

Ähnliche Themen

  1. [C#] Daten eines DataSet editieren
    Von nuf im Forum .NET Café
    Antworten: 3
    Letzter Beitrag: 26.08.08, 17:11
  2. Daten in Dataset schreiben (VB.NET)
    Von tombo82 im Forum .NET Datenverwaltung
    Antworten: 0
    Letzter Beitrag: 03.09.07, 10:49
  3. Daten von GridView in ein DataSet transferieren
    Von raphk im Forum .NET Datenverwaltung
    Antworten: 1
    Letzter Beitrag: 17.11.05, 15:02
  4. DataSet - Daten ändern
    Von EnricoG im Forum .NET Archiv
    Antworten: 7
    Letzter Beitrag: 03.08.05, 16:46
  5. daten von dataset in access schreiben
    Von gufi im Forum .NET Archiv
    Antworten: 0
    Letzter Beitrag: 14.07.05, 14:42