2016-07-28 24 views
-1

Ich habe den folgenden Code. Bitte helfen Sie mir, wie Sie die letzte Aufzeichnung der Aufzeichnungen erhalten können.VB.net Wie gehe ich zum letzten Datensatz

Dim DteQry As New OdbcCommand 
DteQry.CommandText = "select distinct trn_date from order_data order by trn_date asc limit 30;" 

Conn.open() 
DteQry.Connection = Conn 

Dim qryRdr As OdbcDataReader 
qryRdr = DteQry.ExecuteReader() 

If qryRdr.HasRows() Then 

    Dim StartDte = qryRdr.GetValue(0) 
    TextBox2.Text = qryRdr.GetValue(0) 
    Exit Sub 
End If 
+0

Sie haben das nicht wirklich durchdacht, oder? Warum sortieren Sie die Daten in aufsteigender Reihenfolge und versuchen dann, den letzten Datensatz zu erhalten, wenn Sie in absteigender Reihenfolge sortieren und den ersten erhalten könnten? In der Tat, warum nicht "TOP" oder das Äquivalent für Ihre Datenbank verwenden, wenn es eine hat und nur einen Datensatz an erster Stelle abrufen? – jmcilhinney

+0

Ich möchte den letzten Datensatz der Anzahl der Datensätze aktiviert, das ist der Grund, warum ich eine solche Abfrage – Kris

+0

Ah gegeben habe, bemerkte ich nicht die 'LIMIT' Teil, aber selbst dann können Sie immer noch das als eine innere Abfrage und verwenden dann haben Sie eine äußere Abfrage in umgekehrter Reihenfolge und erhalten dann den ersten Datensatz. Verwenden Sie ein bisschen Logik. – jmcilhinney

Antwort

1

Wie wäre es damit ...

Sie nicht die Zeile direkt von OdbcDataReader zählen bekommen. Erstellen Sie einfach die dataTable dt und laden Sie das Dataset vom Reader zu dt. Holen Sie sich die Zeilenanzahl aus der Datentabelle, und Sie können den letzten Datensatz wie folgt abrufen.

If qryRdr.HasRows() Then     
      Dim dt As DataTable 
      dt.Load(qryRdr) 
      Dim StartDte = dt.Rows(dt.Rows.Count-1).item(0) 
      TextBox2.Text = dt.Rows(dt.Rows.Count-1).item(0) 
      Exit Sub 
    End If 
+0

Versucht, aber dieser Code gibt die Fehlermeldung {"Es gibt keine Daten für die Zeile/Spalte."} – Kris

+0

@Kris aktualisiert Jetzt überprüfen – Sankar

+0

Danke Shankar, das hat perfekt funktioniert – Kris

Verwandte Themen