2016-07-28 20 views
-1

次のコードがあります。レコードの最後のレコードを取得する方法について私を助けてください。これについてVB.net最後のレコードに移動するには

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

あなたは本当にそれを考えていませんか?昇順でデータをソートし、降順でソートして最初のレコードを取得できるときに最後のレコードを取得しようとするのはなぜですか?実際には、データベースに「TOP」やそれと同等のものを使用し、最初に1つのレコードを取り出すだけの理由はどうでしょうか? – jmcilhinney

+0

私はこのようなクエリを与えた理由は、オプトインされたレコードの数の最後のレコードをしたい – Kris

+0

ああ、私は 'LIMIT'の部分に気づいていませんでしたが、それでもあなたは内側のクエリとしてそれを使用することができます反対方向に外側のクエリの順序を持​​って、最初のレコードを取得します。ロジックのビットを使用します。 – jmcilhinney

答えて

1

どのように...

あなたはOdbcDataReaderから直接行数を取得することはできません。したがって、dataTable dtを作成し、リーダーからdtにデータセットをロードしてください。 datatableから行数を取得して、最後のレコードを以下のように取得できます。

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

しようとしましたが、このコードではエラーメッセージ "{行/列にデータがありません}"が表示されます。 – Kris

+0

@Krisは今すぐ確認しました – Sankar

+0

Shankarさん、ありがとうございました。 – Kris

関連する問題